3
假设我有一个应用程序和一个全局事件侦听器。那些在PopUp中被解雇的关键事件是否应该被那个听众抓住?或者,也许弹出窗口不在该层次结构中?你 这里的简化测试代码来了解我所说的:运行该应用程序后“FlexGlobals.topLevelApplication.addEventListener”无法捕捉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中执行相同的操作..没有任何反馈。
对此有何想法?
完美!非常感谢,可惜我错过了......作品像一个魅力:) – Antenka 2011-03-02 14:40:43
我的荣幸! :) – 2011-03-02 14:41:29
@TimofeiDavydik FlexGlobals.topLevelApplication和addEventListener之间的区别是什么? – jason 2013-09-27 06:09:36