[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