2010-02-22 17 views
0

我有一個WindowedApplication,在keyboardEvent上(在ENTER鍵上)有一個偵聽器,但是當用戶選擇使用colorpicker並鍵入一個十六進制代碼,然後敲擊ENTER事件也支持我的WindowedApplication。 我不得不停止傳播。 任何提示或摘錄? 感謝 P.Flex:stopPropagation ColorPicker的事件Keyboard.ENTER

回答

0
<?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> 
+0

其實,我有2個聽衆......一個上的應用程序,另一個在顏色拾取。 我試過使用KeyboardEvent.ENTER和ColorPickerEvent.ENTER – 2010-02-22 23:45:20

+0

向我們展示一些代碼。 ColorPicker上的事件偵聽器不會傳播給WindowedApplication。 聽起來像您可能會有WindowedApplication的事件偵聽器調用與ColorPicker的事件偵聽器相同的方法。 – 99miles 2010-02-23 00:13:04

+0

啊哈!對不起,我誤解了。我以爲你的意思是它是在colorpicker之外「觸發」的。我更新了代碼。關鍵是添加stopPropogration()。 請注意,對於要調用的應用程序keyDown處理程序,應用程序需要將焦點放在某處,您可以通過將光標置於textInput中來實現此目的。 – 99miles 2010-02-23 01:23:29

0

這是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(this); } ...

這是從我的主MXML:

... employeeList.addEventListener(KeyboardEvent.KEY_UP,enterListener); ...

私有函數enterListener(E:的KeyboardEvent):無效{
如果(e.keyCode == Keyboard.ENTER){
如果(employeeList.selectedItem){
showDetail(employeeList.selectedItem爲僱員);
}
}
}

+0

您是否嘗試過我的代碼?它仍然沒有做你想要的東西嗎? – 99miles 2010-02-23 20:47:29

+0

是的,你是對的!使用keyDown屬性就像一個魅力! 謝謝。 – 2010-02-24 04:44:40

+0

隨時'接受'該答案;)謝謝。 – 99miles 2010-02-24 23:49:13