久しぶりに Flash ではまりました。
Flash MX2004 で作っていたのを途中から 8 にしていたところ、ある MC(中にいろんな MC やらを持つ)のみ表示されません。ターゲットを Flash Player 7 にすると問題なく 8 にするとこの現象が起きます。特にエラーを出す訳でもなく、スクリプトを追っかけても普通に動いている様に見えますが、なぜかその MC の _visible が false になっているんです。
その MC の初期化段階で含んでいる MC の表示・非表示のコントロールはしていますが、その MC 自体の設定はありません。
スクリプト上でコメントアウトで隠しながらテストすると最後にある1行だけが原因だとわかりました。
_root.target_obj.noImage_mc._visible = false;
target_objがその MC への参照なんですが、なぜこれで消えちゃうのか???
で、noImage_mc の元のシンボル「noImage」を調べると「ムービークリップ」ではなく「グラフィック」になっていました。ん?「グラフィック」シンボル、「グラフィック」シンボルってインスタンスなんか作れたっけ??
きっと、最初は「ムービークリップ」にしていてインスタンスを作ったのに途中で「グラフィック」に変えちゃったんだと思うんです。でも、Player 7 だと noImage_mc が非表示になっていました。
ところが、Player 8 だと、こともあろうに noImage_mc を含む親の MC が非表示なっているではないですか!
なんと!ふぅぅ〜

コメントする