У вас может быть общая ситуация, когда вы начинаете загружать некоторые активы в конструкторе, давайте предположим, что фоновое изображение.
Этот код не будет работать должным образом:
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;
}
Надеюсь, это помогло.