昨日の記事ですっかりonLoadってのを忘れてた...
基本的なスクリプトが実行される順番を確認しておこう.
1コンストラクタが実行されたときにはもちろんTestクラスを継承している.
なのでonLoadイベントハンドラが実行されたときにはそのインスタンスが持つ全ての下階層のインスタンスはいろいろ準備が整ってる.
ただ,onLoadも上の階層から実行していくので,BのインスタンスがCのインスタンスをb_mc.onLoadで設定すると,a_mcからc_mcの準備ができた状態でアクセスするにはちょっと工夫をしてあげないとならないのかな...
追記)2006.04.12 18:38
muneさんからonClipEvent(initialize)ってのもあるよーといわれたので追加しました.
とにもかくにもまず最初に呼び出されるみたいです.
コンストラクタとか
rakeemさんの記事でも見っけました.
A LOT | initializeってヤバイね。
// class Test
class Test extends MovieClip {
private static var extendFlag:Boolean = false;
public function Test() {
_root.debug_txt.write(this + ' constructor executed.');
this.isExtend();
}
public function onLoad():Void {
_root.debug_txt.write(this + ' onLoad executed.');
this.isExtend();
}
public function isExtend():Void {
if (Test.extendFlag)
return;
_root.debug_txt.write('----------------');
_root.debug_txt.write(' A : instanceof Test -> ' + (_root.a_mc instanceof Test));
_root.debug_txt.write(' B : instanceof Test -> ' + (_root.a_mc.b_mc instanceof Test));
_root.debug_txt.write(' C : instanceof Test -> ' + (_root.a_mc.b_mc.c_mc instanceof Test));
_root.debug_txt.write('----------------');
if (_root.a_mc instanceof Test and
_root.a_mc.b_mc instanceof Test and
_root.a_mc.b_mc.c_mc instanceof Test) {
Test.extendFlag = true;
}
}
}
trackback for this entry URL:
http://blog.graffiti-web.org/mt/mt-tb.cgi/406