init メソッドでテキスト フィールドにフォーカスを設定しましたが、最初にテキスト フィールドをクリックしたときにのみキーボード入力イベントが機能します。
何が問題ですか?
init メソッドでテキスト フィールドにフォーカスを設定しましたが、最初にテキスト フィールドをクリックしたときにのみキーボード入力イベントが機能します。
何が問題ですか?
これは、AS3 ではデフォルトでstage
フォーカスが当たっているためです。そのため、キーボード イベント リスナーをそれ以外のものに追加する場合は、stage
そのオブジェクトにフォーカスを設定する必要があります。例、txt
あなたのテキストフィールドにキーボードイベントリスナーを追加している場合txt
、そのためにフォーカスを取得する必要があります
stage.focus = txt;
その行はテキスト フィールドにフォーカスをもたらしましたが、それ以外のものをクリックすると、そのオブジェクトがフォーカスされたことを思い出してください。txt
集中力が切れたのは言うまでもありません。
ヒント: キーボード イベント リスナーを に追加してみてくださいstage
。そうすると、どのオブジェクトにフォーカスがあるかに関係なく、キーがクリックまたは離されたときにイベントが送出されます。
stage.addEventListener(KeyBoardEvent.KEY_DOWN, onKeyDown);