[AS][?]ドキュメントクラスでの初期化処理のやりかたについて
ドキュメントクラスでの初期化処理の方法について
偉いの人のソースを見るといろいろ方法があるみたい。
でも、どういったケースで使いわけるのかが、よくわからない・・・
★例1:普通にコンストラクタ内に書いちゃう
面倒なときはこれ。
package {
import flash.display.Sprite;
import flash.events.Event;
public class Test0 extends Sprite{
//コンストラクタ
public function Test0() {
//↓初期化処理を書く
trace("init")
}
}
}
★例2:ドキュメントクラスがステージに追加されたら実効
よくみる書き方。
package {
import flash.display.Sprite;
import flash.events.Event;
public class Test1 extends Sprite{
//コンストラクタ
public function Test1() {
this.addEventListener(Event.ADDED_TO_STAGE , init);
}
private function init(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
//↓初期化処理を書く
trace("init")
}
}
}
★例3:loderInfoプロパティをトリガーにする
たまたま発見。(全部完全に読み込んでからってこと?)
package {
import flash.display.Sprite;
import flash.events.Event;
public class Test2 extends Sprite{
//コンストラクタ
public function Test2() {
this.addEventListener(Event.ENTER_FRAME , enterFrameHandler);
}
private function enterFrameHandler(e:Event):void {
if (this.loaderInfo){
if ( this.loaderInfo.bytesTotal > 0 && this.loaderInfo.bytesLoaded >= this.loaderInfo.bytesTotal ) {
removeEventListener( Event.ENTER_FRAME, enterFrameHandler );
init();
}
}
}
private function init():void {
//↓初期化処理を書く
trace("init")
}
}
}
結局のところ、どれが一番ベターな書き方なんだろう???
作ってるモノのレベルで変わるのだろうけど1でも不自由したことがないのでよくわからない・・・
Tweet