[AS]入れ子状態にあるライブラリのMCにリンケージしたクラスファイルの読み込まれる順番
どういうことかというと。
メインのタイムラインにMC3というムービークリップ
MC3の中にはMC2があり、
MC2の中にはMC1があるという状態。
つまりステージからMC3をクリックしまくって、MC1に達したときの階層がこんな感じになってる状態。
シーン1→MC3→MC2→MC1
この状態で、
メインのタイムライムラインに
trace(“main”);
MC1のタイムラインに
trace(“1”);
MC2のタイムラインに
trace(“2”);
MC3のタイムラインに
trace(“3”);
これでプレビューすると出力結果は、
main
3
2
1
ステージに近い方から実行されていくというのはなんとなく予想通り。
ここで、各MCにクラスファイルをリンケージしてみる。
(全て1フレーム目に書き出しの設定)
MC1にはTest1.as
MC2にはTest2.as
MC3にはTest3.as
それぞれクラス名をトレースするだけの内容が書いてある。
例)Test1.as
package { import flash.display.MovieClip; public class Test1 extends MovieClip{ public function Test1() { trace("Test1"); } } }
この状態で実行するこうなりました。
Test1
Test2
Test3
main
3
2
1
入れ子の一番深いリンケージクラスファイルが一番初めに実行、どんどん上に上がっていって、リンケージしたクラスファイルが終わったら、フレームアクションをステージ側から実行していって、一番深いところを目指す。
予想と違ったのでなんか驚いた。
Tweet