2012-10-04 98 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) 
{ 

}