• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash AS3 減速運動の不具合の回避方法を教えて下さい)

Flash AS3 減速運動の不具合の回避方法を教えて下さい

このQ&Aのポイント
  • Flash CS3で作成したAS3のアニメーションで減速運動の不具合が発生しました。センセーショナルなタイトルは「Flash AS3 減速運動の不具合の回避方法はこれだ!」です。
  • 質問者はFlash CS3のAS3を使って、EaseingSimpleクラスを拡張して任意のボタンを押すと指定の座標に減速しながら移動するクラスを作成しました。しかし、複数のボタンが設置されている場合に移動中に別のボタンを押すと意図しない座標に止まってしまうという不具合が発生しています。
  • 質問者は移動先の座標をすぐに変更する動作を付けたいと考えています。具体的な実装としては、ボタンを押すイベント発生時に移動先の座標を変更し、インスタンスが減速しながら移動するようにしたいとしています。しかし、具体的な方法が分からず困っているようです。どのように実装すればよいでしょうか?

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

  • ベストアンサー
  • chika_008
  • ベストアンサー率80% (20/25)
回答No.1

まず、考えられる原因としてeventListener(Event.ENTER_FRAME, function); がしっかり止められてませんね。 //イーズ中断 public function stop():void { my_mc.removeEventListener(Event.ENTER_FRAME, easeStep); } 上記関数ですが、stop()という名前はあまりこのましくありません。 play(),stop()と勘違いしてしまう恐れがあります。ですので stopEnterFrameとかremoveListenerとかなんでもよいと思うのでつけてあげてください。そして、 public function onCLICK(event:MouseEvent):void{ my_mc.removeEnterFrame(); //クリックされたら現在動いているenterFrameを消す関数を実行。 easeTo(zahyoX,zahyoY); my_mc2.buttonMode=true; my_mc2.alpha=0.3; } 上記のようにonCLICKの所にもさきほど名前をremoveEnterFrameと名前を変えて上げた関数を記述。しっかりとクリックされた時もenterFrameをとめてあげてください。 これでどうでしょうか? たしかめてくださいませ。

hidex2009
質問者

お礼

>chika_008様 早々のご回答ありがとうございます。 早速、試してみたいと思います。 追記:すみません訂正箇所がありました。 ********************************************** ・・・ ・・・ public function onOUT(event:MouseEvent):void{ my_mc.stop();//←不要な一行でした。 my_mc2.buttonMode=false; my_mc2.alpha=1; } ・・・ ・・・ **********************************************

hidex2009
質問者

補足

>chika_008様 EaseingSimpleクラス ********************************************************** 中略 //イーズ中断 public function removeEnterFrame():void { my_mc.removeEventListener(Event.ENTER_FRAME, easeStep); } ********************************************************** idoStageクラス(EaseingSimpleクラスを拡張) ********************************************************** //引数で受け取った座標を「EaseingSimpleクラスのeaseTo」に渡してイーズする public function onCLICK(event:MouseEvent):void{ my_mc.removeEnterFrame(); easeTo(zahyoX,zahyoY); my_mc2.buttonMode=true; my_mc2.alpha=0.3; } ********************************************************** と修正してみたのですが、 ********************************************************** TypeError: Error #1006: removeEnterFrame は関数ではありません。 at idoStage/onCLICK() ********************************************************** が出てしまいます。いろいろとやってみたのですが…。 度々すみません、お力添えをお願いします。

関連するQ&A