• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:A.S 3.0 キーボードでのフレーム移動)

FlashのAsctionScript3.0でキーボード操作でフレーム移動する方法

このQ&Aのポイント
  • FlashのAsctionScript3.0を使用して、キーボードを押すと指定したフレームに移動する方法について説明します。
  • キーボード操作によるフレーム移動を実装する際に発生するエラーについて解決策を提供します。
  • フレームラベルが正しく設定されているにもかかわらず、ArgumentError: Error #2109が発生する場合の対処方法を説明します。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_P1); これがずっと効き続けているから,そういうエラーが出るのでしょう。 ご質問の件に限ったことではなく 動作させ続ける必要がないイベントリスナーは なるべくその都度 removeEventListener で 登録を抹消する方が良いでしょう↓。 stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_P1); function fl_KeyboardDownHandler_P1(event:KeyboardEvent):void { this.gotoAndPlay("P1ending"); stage.removeEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_P1); } 再び必要になれば、 そのときにまた addEventListener をしなおせば良いです。 例えば上の例では、 上のスクリプトを書いたフレーム(シーン P1 の フレーム1?)に戻ってきたときには 自動的に再び addEventListener されるわけですから 普通はこのままで問題ないと思います。 または、 「シーン P1」内のみで this.gotoAndPlay("P1ending"); を実行させるようにするのも1つの方法です↓。 stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_P1); function fl_KeyboardDownHandler_P1(event:KeyboardEvent):void { if (this.currentScene.name == "P1") { this.gotoAndPlay("P1ending"); } }

tep0607
質問者

お礼

まさに私が求めていた回答そのものでした。 動作はできてもエラー表示がでるとやはりスッキリしませんでしたので。。 解説も分かりやすかったです。ありがとうございました!

関連するQ&A