• ベストアンサー

当たり判定後の処理 Flash

FlashMXを使っていますが あるインスタント同士が重なったとき、あるフレームラベルに移動させたい 少々調べたところ、これに該当するものがなかったので質問させていただきます。 まず、インスタントAとBが重なるとき フレームラベル「あいうえお」に移動させるような感じです。 フレームラベルの移動の仕方はボタンでの移動しかわかりませんでした; よろしくお願いします。

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

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

_root にインスタンス名 「A_mc」 と 「B_mc」 というムービークリップがあったとします。 また, フレームラベル「あいうえお」 は _root にあるフレームラベルだとします。 「A_mc」と「B_mc」が存在する _root のフレームに, 普通に次のように書けばできると思います↓。 ----------------------------------------------------- // とりあえず _root をストップ _root.stop(); // 1フレーム進む時間毎に随時実行する関数を A_mc に定義 _root.A_mc.onEnterFrame = function() { // もし この A_mc が B_mc と当たったら if (this.hitTest(_root.B_mc)) { // _root を フレームラベルあいうえお に進めて再生 _root.gotoAndPlay("あいうえお"); // この1フレーム進む時間毎に随時実行する関数を削除 delete _root.A_mc.onEnterFrame; } }; ----------------------------------------------------- 1フレーム進む時間毎に随時実行する関数は 特に A_mc に定義する必要はなく, B_mc に定義しても,_root に定義しても,他に定義してもかまいません。

sikkoku
質問者

お礼

回答ありがとうございます。 初心者質問ですいませんが 現在のフレームラベルがstage001playからstage001cに移動し あたるインスタントがhiyoとgoal001だとすると stage001play stop(); // 1フレーム進む時間毎に随時実行する関数を A_mc に定義 stage001play.hiyo.onEnterFrame = function() { // もし この A_mc が B_mc と当たったら if (this.hitTest(_root.goal001)) { // _root を フレームラベルあいうえお に進めて再生 stage001play.gotoAndPlay("stage001c"); // この1フレーム進む時間毎に随時実行する関数を削除 delete stage001play.hiyo.onEnterFrame; } }; でいいはずですよね? なぜできないんでしょうか。 そもそもフレームラベルが移動したいフレームラベルの外にあるからでしょうか その場合はどう書けばよろしいのでしょうか?

sikkoku
質問者

補足

すいません 自己解決しました。 本当にありがとうございましたッ!

関連するQ&A