KeyboardEvent (ENTER キー) にリスナーを持つ WindowedApplication がありますが、ユーザーがカラーピッカーを使用して 16 進数コードを入力し、ENTER キーを押すと、イベントが WindowedApplication にも伝達されます。繁殖を止めなければなりません。ヒントやスニペットはありますか?ありがとうP。
2 に答える
これは TitleWindow のコードの一部で、cp は ColorPicker です。
...
public function init():void { cp.addEventListener(ColorPickerEvent.ENTER,handler); }
public function handler(e:ColorPickerEvent):void { e.stopImmediatePropagation(); }
public function changeColor(e:ColorPickerEvent):void { Application.application.couleur = cp.selectedColor; PopUpManager.removePopUp(これ); } ...
そして、これは私のメイン mxml からのものです:
... employeeList.addEventListener(KeyboardEvent.KEY_UP, enterListener); ...
private function enterListener(e:KeyboardEvent):void {
if(e.keyCode == Keyboard.ENTER) {
if(employeeList.selectedItem) {
showDetail(employeeList.selectedItem as Employee);
}
}
}
<?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"
keyDown="appHandler(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
private function appHandler(event:KeyboardEvent):void
{
trace('A key has been pressed inside the app');
}
private function cpHandler(event:KeyboardEvent):void
{
trace('A key has been pressed inside the color picker');
event.stopPropagation();
}
]]>
</fx:Script>
<mx:ColorPicker x="159" y="137" id="cp" keyDown="cpHandler(event)"/>
<s:TextInput x="233" y="137"/>
</s:WindowedApplication>