2010-02-22 2 views

답변

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

는 사실,이 청취자 ... 응용 프로그램에 하나 ColorPicker의 다른있다. KeyboardEvent.ENTER와 ColorPickerEvent.ENTER를 모두 사용하여 시도했습니다. –

+0

몇 가지 코드를 표시하십시오. colorpicker의 이벤트 리스너가 WindowedApplication으로 전파되지 않습니다. WindowedApplication의 이벤트 리스너가 ColorPicker의 이벤트 리스너와 동일한 메서드를 호출하는 것처럼 들릴 수 있습니다. – 99miles

+0

아아! 미안, 내가 잘못 이해 했어. 나는 당신이 그것이 colorpicker 바깥에서 '방아쇠를 당겼다'는 것을 의미한다고 생각했습니다. 코드를 업데이트했습니다. 열쇠는 stopPropogration()을 추가하는 것입니다. 응용 프로그램 keyDown 처리기를 호출하려면 응용 프로그램에 어딘가에 포커스가 있어야합니다. 커서는 textInput에 커서를 놓음으로써 얻을 수 있습니다. – 99miles

0

이 CP는 ColorPicker를있는 TitleWindow의 코드의 일부입니다.

...  

공개 함수 초기화() {공극 cp.addEventListener (ColorPickerEvent.ENTER, 핸들러); }

공개 함수 핸들러 (예 : ColorPickerEvent) {공극 e.stopImmediatePropagation(); }

public function changeColor (e : ColorPickerEvent) : void { Application.application.couleur = cp.selectedColor; PopUpManager.removePopUp (this); } ...

그리고 이것은 내 주요 MXML에서입니다 :

... employeeList.addEventListener (KeyboardEvent.KEY_UP입니다, enterListener); ...

전용 기능 enterListener (예 : KeyboardEvent입니다) (e.keyCode == Keyboard.ENTER)
경우 {{공극
경우 (employeeList.selectedItem) {
showDetail (employeeList.selectedItem로서 종업원);
}
}
}

+0

아래 코드를 사용해 보셨습니까? 아직도 원하는대로하지 않습니까? – 99miles

+0

네 말이 맞아 !! keyDown 속성을 사용하면 매력처럼 작동합니다! 감사합니다. –

+0

그 답을 '수락'하십시오;) 고마워요. – 99miles