Предположим, у меня есть приложение и прослушиватель глобальных событий. Должны ли ключевые события, которые запускаются в PopUp, быть перехвачены этим слушателем? Или, может быть, всплывающие окна не размещены в этой иерархии?
Вот упрощенный тест-код, чтобы вы могли понять, о чем я говорю:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script><![CDATA[
private function init():void {
FlexGlobals.topLevelApplication.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDownHandler);
}
private function myKeyDownHandler(event:KeyboardEvent):void {
Alert.show("It works!");
}
private function makeNewPopup():void {
var win:PopupWindow = new PopupWindow(this, new TestingForm(), true, "Popup", false);
win.showPopup();
}
]]></mx:Script>
<mx:VBox>
<mx:TextInput/>
<mx:Button label="MakePopup" click="makeNewPopup()"/>
</mx:VBox>
</mx:Canvas>
Хорошо, что у нас есть ... после запуска приложения поместите фокус ввода в TextInput и нажмите любую букву. Оповещение будет уволено. Теперь нажмите MakePopup и сделайте то же самое в нем TextInput. Никаких отзывов от него нет.
Есть мысли по этому поводу?