我使用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 键关闭文本区域窗口时。如何避免这种情况?
答案 0 :(得分:0)
使用除了转义键以外的单个键关闭对我来说似乎不是一个好主意,特别是不能使用回车键。
但是,如果你坚持这样做,那么你可以尝试检查当前的焦点对象,以确保它不是一个接受回车键的输入元素/组件。
请参阅FocusManager.getFocus()和Stage.focus。例如,非常严格的检查可能如下所示:
if(focusManager.getFocus() is IFocusManagerComponent ||
stage.focus is InteractiveObject || stage.focus is IFocusManagerComponent)
{
}