2012-10-04 99 views
0

我使用AIR应用程序。 在这个应用程序中,显示了几个窗口。按钮的AIR键盘快捷键

我喜欢用快捷键关闭窗口像Esc键输入

我尝试这样做,是这样的:

// 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(); 
    } 
} 

但如果窗口存在文本区域,有问题发生。因为当用户按输入键文本区窗口关闭。这怎么可以避免?

回答

0

使用除了转义键之外的其他键关闭对我来说似乎不是一个好主意,特别是不用Enter键。

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

参见FocusManager.getFocus()和Stage.focus。一个非常严格的检查例如可能是这样的:

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

}