• ベストアンサー

keyCodeの反応

AS3.0での質問です stage.addEventListener event.keyCode で指定してボタン押されたときstageにフォーカスが当たらないと無反応なので困ってます stageを1回クリックすれば正常に動きます stageよりもムービークリップを先にクリックされた場合、stageをクリックしていないのでキーボードを押しても無反応ですよね? swfが読み込まれたときに1回だけ先にstageに自動的にフォーカスを当てることはできますか? また、違う解決法でもかまいません よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • kuri627
  • ベストアンサー率85% (6/7)
回答No.1

参考URLの一番下にあるサンプルで動作を確認してください。 stage.focus で、フォーカスの移動は可能ですが、「swfが読込まれたとき」を判定するイベントが必要です。 サンプルではkeyCodeを取得するイベントリスナーがstageではなくSpriteに設定されています。 SpriteをクリックされるとフォーカスがSpriteに指定され、keyCodeを取得できる流れだと思います。 >stageよりもムービークリップを先にクリックされた場合、stageをクリックしていないのでキーボードを押しても無反応ですよね? そのMovieClipにイベントリスナーを持たせるか、MovieClipをクリックされた時にkeyCodeを取得するイベントリスナーを設定した対象へ[stage.focus]を設定すれば、イベントの取得が可能ではないでしょうか? 細かいファイルの状況等は分かりませんので、おおまかにイメージだけ。

参考URL:
http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/events/KeyboardEvent.html
flash0
質問者

お礼

MovieClipにイベントリスナーを持たせることにしました 回答いただきありがとうございました

関連するQ&A

専門家に質問してみよう