2

こんにちは私はAdobeAIRアプリケーションを開発しています。プロジェクトのすべてのボタンにクリックイベントを実装しました。次に、フォーカスされたボタンに「ENTER」キーボードイベントを追加します。これを実現する簡単な方法はありますか?アドバイスしてください。

4

1 に答える 1

5

あなたはこの種のことをすることができます:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       addedToStage="addEnterFeature()">
    <fx:Script>
        <![CDATA[
            private function addEnterFeature() : void
            {
                stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
                myButton.addEventListener(MouseEvent.CLICK, onButtonClick);
            }

            private function onKeyDown(e : KeyboardEvent) : void
            {
                if(e.keyCode == Keyboard.ENTER && stage.focus is Button)
                    // Simulate a mouse click on current focused button
                    Button(stage.focus).dispatchEvent(new MouseEvent(MouseEvent.CLICK));
            }

            private function onButtonClick(e : Event) : void
            {
                trace("Button click handler");
            }

        ]]>
    </fx:Script>
    <s:Button label="Test" id="myButton" />
</s:WindowedApplication>

アプリ内のすべてのボタン(フォーカスがある)でEnterキーを使用すると、マウスクリックをシミュレートします

于 2013-01-31T16:26:58.440 に答える