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

エスケープキー以外の単一のキーで閉じることは、特にエンターキーではあまり良い考えではないようです。

ただし、そのようにすることを主張する場合は、現在フォーカスされているオブジェクトをチェックして、Enter キーを受け入れる入力要素/コンポーネントではないことを確認してみてください。

FocusManager.getFocus( ) およびStage.focusを参照してください。非常に制限的なチェックは、たとえば次のようになります。

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

}
于 2012-10-04T13:37:43.700 に答える