• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActionScript 孫のパス)

ActionScriptでのムービークリップのパス指定についての問題

このQ&Aのポイント
  • Flashを編集している初心者が、ActionScriptでムービークリップのパス指定について問題があります。
  • ムービークリップのインスタンス名が「mc1_1」であり、その親である「mc1」の中に存在しています。
  • 「_root.mc1.mc1_1.onRollOver~」のように指定したイベントが動かず、パスが間違っている可能性が考えられます。

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

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

> 「_root.mc1.mc1_1._visible = ~」のように書くと、 > ちゃんと動作していました。 そしたらターゲットパスは合っていると思います。 単に mc1 に onRollOver など,ボタン系のonイベントハンドラメソッドのうちの何か(onReleaseやonPressや…)を書いているのでそっちが優先されるだけではないでしょうか? ボタンが(ムービークリップも)上下に重なったとき,上のボタンの on○○ が優先になります。 ムービークリップの入れ子の場合も,結局親MCは子MCよりも上に表示されていることになりますから, 親子に on○○ を書いた場合,親の on○○ が優先されることになります。 (そういう仕様でないとボタンがたくさん重なったとき一斉に反応してしまって使いにくいです。) ====================== もし, 親にも子にも ボタン系on○○ を書きたい場合は, 1 親の中に子をさらにもう1つ作ってその子に親に書くべき on○○ を書く方法 2-1 親には on○○ を書いた状態のまま,子とマウスとの当たり判定を取る方法 2-2 子には on○○ を書いた状態のまま,親とマウスとの当たり判定を取る方法 の2つ(3つ)が代表的な対処法だと思います。 1の方法の場合, 子の on○○ は有効にはなりますがその間,親に書くべきだった on○○ は無効になります。 2-1の方法の場合, 子に書くべきだった on○○ と,親に書いている on○○ は両方有効になり両方とも動作します。 2-2の方法の場合も, 親に書くべきだった on○○ と,子に書いている on○○ は両方有効になり両方とも動作します。 1の方法はつまり次のようにすれば良いだけです。 ┏━━━━━━━━━━━━━━━ ┃  [__ mc1_1 __] 上レイヤーなど ┃ ┃[______ mc1_2 ______] 下レイヤーなど ┗━━mc1━━━━━━━━━━━ mc1_1 の下レイヤーなど下側に mc1_2 を作成して, 親に書くべき on○○ つまり 「_root.mc1.mc1_2.onRollOver~」 などを書きます。 mc1_1 の左右(x方向)や上下(y方向)にはみ出た mc1_2 の部分の on○○ が有効になります。 2-1の方法(例) --------------------------------- // 親MCに関して _root.mc1.onRollOver = function() { trace("親と当たりました"); }; // 子MCに関して _root.mc1.mc1_1.onMouseMove = function() { if (this.hitTest(_root._xmouse, _root._ymouse, true)) { trace("子と当たりました"); } }; --------------------------------- 2-2の方法(例) --------------------------------- // 親MCに関して _root.mc1.onMouseMove = function() { if (this.hitTest(_root._xmouse, _root._ymouse, true)) { trace("親と当たりました"); } }; // 子MCに関して _root.mc1.mc1_1.onRollOver = function() { trace("子と当たりました"); }; --------------------------------- traceは勝手に書いただけで,実際はこの部分は何かさせる動作に変えます。 また, onRollOver の代用なので, 当たり判定の方は onMouseMove を使用していますが, onRelease の代用であれば onMouseUp, onPress の代用であれば onMouseDown を使用するなど, この辺は変える必要があります。

micco4
質問者

お礼

ありがとうございます! お礼が遅くなってしまいごめんなさい。 今回は時間がかなり限られていたので 学校の先生と相談しながら 結局座標で処理しました(^^; ですがこれからご回答を参考にもっと勉強させていただきます! FLASHは奥が深いですね…。 お礼ポイントをもっと差し上げたい思いですが これでご勘弁くださいm(_ _)m 本当にありがとうございました!

関連するQ&A