• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActionScript2.0のイベントについて)

ActionScript2.0のイベントについて

このQ&Aのポイント
  • 親ムービークリップに配置した子ムービークリップのイベントが実行されなくて困っています。
  • 親ムービークリップにはonRollOverイベントとonRollOutイベントを設定しました。
  • 子ムービークリップのonEnterFrameイベントは実行されますが、onReleaseイベントが実行されず困っています。

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

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

まず3行目に次のように書かれていらっしゃいますよね。 > this.onRollOver = function() これで,そのスクリプトを書いたムービークリップに ボタン系の on○○イベントハンドラメソッド が定義されます。 そして10行目にに次のように書かれていらっしゃいますよね。 > this["child_mc"].onRelease = function() これで,そのスクリプトを書いたムービークリップ内にある「child_mc」というインスタンス名のムービークリップに ボタン系の on○○イベントハンドラメソッド が定義されます。 ActionScript 2.0 以下では,ボタン機能は入れ子にできないんですよ。 ボタン系の on○○イベントハンドラメソッド,または on(○○) イベントハンドラ は,上下や内外に重ねられないということです。 もし,重ねた場合,上のボタンが優先になります。 ムービークリップは一種の箱のようなものですから, 箱自体がボタンであるような箱の中にボタンは入れられない, 入れても先に箱を押してしまうので,中のボタンにまで手が届かないという感じです。 ボタン機能を上下に(内外に)重ねる場合は, 一般的には,片方のムービークリップに hitTest を使います。 「onハンドラを使わずにロールオーバー/ロールアウトを検出する」 http://fumiononaka.com/TechNotes/Flash/FN0308001.html --------------------------------- 最近 Flash を始められた方であれば区別が付きにくいと思うのですが, ムービークリップの on○○イベントハンドラメソッド には大きく分けて2種類のものがあるのです。 1つは Flash 4 以前からあるボタン由来の on○○イベントハンドラメソッド で, もう1つは Flash 5 以降に登場したムービークリップ由来の on○○イベントハンドラメソッド です。 「ムービークリップのイベントハンドラ」 http://homepage3.nifty.com/ginga-b/MX/mc_eventhandler.html ボタン系の on○○イベントハンドラメソッド,または on(○○) イベントハンドラ は,上下に重ねられませんが, ムービークリップ系 on○○イベントハンドラメソッド,または onClipEvent(○○) イベントハンドラ は, マウスでそのもの自体をクリックするとかしないとか関係ないので,上下に重ねられます。

sh_200911
質問者

お礼

ご回答頂きありがとうございます。 お礼が遅くなり申しわけございません。 詳しい説明と参照アドレスのおかげで問題を解決することができました。 >最近 Flash を始められた方であれば区別が付きにくいと思うのですが, >ムービークリップの on○○イベントハンドラメソッド には大きく分けて2種類のものがあるのです。 >1つは Flash 4 以前からあるボタン由来の on○○イベントハンドラメソッド で, >もう1つは Flash 5 以降に登場したムービークリップ由来の on○○イベントハンドラメソッド です。 2種類の違いをまったく理解していませんでしたので大変勉強になりました。 親ムービークリップの処理をhitTestとonEnterFrameを使って書き換えることで、希望の処理ができました。 本当にありがとうございます。

関連するQ&A

専門家に質問してみよう