0

我使用 AIR 应用程序。在此应用程序中,显示了几个窗口。

我喜欢用 和 之类的快捷方式关闭Esc窗口Enter

我尝试这样做:

// On creation complete
this.addEventListener(KeyboardEvent.KEY_DOWN, exit_keyDownHandler);

// exit function
protected function exit_keyDownHandler(event:KeyboardEvent):void{
 if  ((event.keyCode == Keyboard.ENTER)
    ||(event.keyCode == Keyboard.NUMPAD_ENTER)
    ||(event.keyCode == Keyboard.ESCAPE)){
       stage.nativeWindow.close();
    }
}

但是如果窗口上存在文本区域,就会出现问题。因为当用户按下 Enter键文本区域窗口关闭。怎么能避免呢?

4

1 回答 1

0

对我来说,使用除转义键以外的单个键关闭似乎不是一个好主意,尤其是不使用回车键。

但是,如果您坚持这样做,那么您可以尝试检查当前焦点对象以确保它不是接受输入键的输入元素/组件。

请参阅FocusManager.getFocus( ) 和Stage.focus。例如,一个非常严格的检查可能如下所示:

if(focusManager.getFocus() is IFocusManagerComponent ||
   stage.focus is InteractiveObject || stage.focus is IFocusManagerComponent)
{

}
于 2012-10-04T13:37:43.700 回答