keyboardEvent (Enter 키)에 리스너가있는 WindowedApplication이 있지만 사용자가 colorpicker를 사용하고 16 진수 코드를 입력 한 다음 Enter 키를 누르면 이벤트가 시작됩니다. 내 WindowedApplication에도 프로빙됩니다. 전파를 중지해야합니다. 힌트 또는 스 니펫? 감사 P.는Flex : stopPropagation 이벤트에 대한 색상 피치의 Keyboard.ENTER
0
A
답변
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
이 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로서 종업원);
}
}
}
는 사실,이 청취자 ... 응용 프로그램에 하나 ColorPicker의 다른있다. KeyboardEvent.ENTER와 ColorPickerEvent.ENTER를 모두 사용하여 시도했습니다. –
몇 가지 코드를 표시하십시오. colorpicker의 이벤트 리스너가 WindowedApplication으로 전파되지 않습니다. WindowedApplication의 이벤트 리스너가 ColorPicker의 이벤트 리스너와 동일한 메서드를 호출하는 것처럼 들릴 수 있습니다. – 99miles
아아! 미안, 내가 잘못 이해 했어. 나는 당신이 그것이 colorpicker 바깥에서 '방아쇠를 당겼다'는 것을 의미한다고 생각했습니다. 코드를 업데이트했습니다. 열쇠는 stopPropogration()을 추가하는 것입니다. 응용 프로그램 keyDown 처리기를 호출하려면 응용 프로그램에 어딘가에 포커스가 있어야합니다. 커서는 textInput에 커서를 놓음으로써 얻을 수 있습니다. – 99miles