2

我有一个 WindowedApplication,我需要监视一个keyUp,以便我可以在按下退出键时关闭应用程序。但是,我的代码不起作用:

<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"
                       keyUp="windowedapplication1_keyUpHandler(event)">

<fx:Script>
        <![CDATA[   

            protected function windowedapplication1_keyUpHandler(event:KeyboardEvent):void
            {
                //Monitor key press {ESC}
                if(event.keyCode == 27){
                    exit();
                }
                else{
                    trace("key = " + event.keyCode);
                }
            }   

        ]]>
</fx:Script>

似乎这个事件根本没有触发,我什至试图覆盖keyUpHandler并追踪一些信息,但什么也没有。

4

1 回答 1

1

我在 Adob​​e 论坛上发现了这个类似的问题,它帮助解决了这个问题。

我通过侦听applicationComplete然后在处理程序中将keyUp侦听器附加到stage.

<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"
                       applicationComplete="init()">

<fx:Script>
        <![CDATA[   

            protected function init():void
            {
                stage.addEventListener(KeyboardEvent.KEY_UP, windowedapplication1_keyUpHandler);
            }

            protected function windowedapplication1_keyUpHandler(event:KeyboardEvent):void
            {
                //Monitor key press {ESC}
                if(event.keyCode == 27){
                    exit();
                }
                else{
                    trace("key = " + event.keyCode);
                }
            }       

        ]]>
</fx:Script>
于 2013-03-19T13:11:06.020 回答