mouseChildren = false; すべての子インスタンスが対象では困るのよ〜。
ActionScriptと磯野家がコラボったのではなく、
mouseChildrenでなぜ!?となったので記事にした。
もやもやしてます、助言お願いします。
はじめに。
波平、カツオ、ワカメはそれぞれインスタンスです。
波平は2人の親インスタンスです。
追記: 090917+21:22
子インスタンスが独自のクラスを継承していれば問題ないのですが、
例えば、タイムラインに配置されただけのMovieClip(ActionScriptに書き出していない、つまり継承クラスはflash.display.MovieClipなだけ)が対象の場合と考えていただければと思います。
たとえば、ワカメだけはマウスイベント有効にしたい。
IsonoNamihei.as (波平クラス)
mouseChildren = false; // ワカメとカツオのマウスイベント無効化 mouseEnabled = false; // 波平自身のマウスイベント無効化
こうすると、3人のマウスイベントが無効化される。
しかし、俺はワカメのマウスイベントは有効にしたいので、
次の処理をワカメクラスに追記してみたのだが、、、
IsonoWakame.as (ワカメクラス)
mouseEnabled = true; // ワカメ自身のマウスイベントを有効化
そう、子インスタンスから有効化すればいいでない?
と思ったが。で、できねぇ!
力技でやった。
ふむ、子インスタンスからはできねぇってのか!
で、力技でとりあえず解決してみた。
IsonoNamihei.as (波平クラス)
for (var i: uint = 0; i < numChildren; i++) { var child: * = getChildAt(i); if (child is MovieClip && child.name != "ワカメ") { // ワカメ以外はマウスイベント無効化 child.mouseEnabled = false; } }
ワカメ以外の子インスタンスのみを無理やりマウスベント無効化!作戦を決行。
こんなんでいいんだろうか。疑問が残りもやもやしますが、とりあえずこれでいいやぁ。
みんなはこんな場合どうしてますか。