假设我有一个应用程序和一个全局事件监听器.在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>
Run Code Online (Sandbox Code Playgroud)
好的,我们有...运行应用程序后,将输入焦点放入TextInput并按任意字母.警报将被解雇.现在,按MakePopup并在其中执行相同的TextInput ..没有任何反馈.
有什么想法吗?