コンストラクタでいくつかのアセットの読み込みを開始する共通の状況があるかもしれません。背景画像を想定しましょう。 このコードは正常に動作しないでしょう。
var object:TestObject = new TestObject(); //inside the contructor, the background image will start loading
object.background.width = 120; // this will not work, because the background is not loaded yet
これを解決する方法はたくさんあります...
あなたがオブジェクトを作成する前に資産をロードし、そしてそれらがロードされた後、完全にそれらを送ることができますパラメータとしてのコンストラクタ私はこれが助けを願ってい
//outside
object.BackgroundWidth = 120;
----------
//inside the class
public var BackgroundWidth:int;
private var background:Bitmap;
public function TestObject(){
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, assignProperties);
loader.load("img.png");
}
//this will make sure the width is applied to the background
//when it's loaded completely
private function assignProperties(e:Event){
background = Bitmap((event.currentTarget as LoaderInfo).content);
background.width = BackgroundWidth;
}
:
それとも、このような何かを彼らの完全なロード、ロードされた資産に割り当てられることになるオブジェクト内のいくつかのプロパティを定義することができます。
'if(object!= null)'が失敗する例を表示できますか? null以外の参照があるかどうかを判断する方法が他にどれほどあるかは分かりません。または、すべてのプロパティが設定されているように、初期化されたことを意味しますか? –
はい、初期化されました。 – Loop
あなたは初期化を構成するものを投稿できますか? – Patrick