+ 1 @mj: некоторые переменные могут быть недоступны при вызове конструктора.
довольно частая конфигурация выглядит следующим образом:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();//if stage is available, init()
else addEventListener(Event.ADDED_TO_STAGE, init);//otherwise, wait for the stage to be available
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//here we can access the stage
//stage.prop = value;
}
}
}
, если это класс Main (или класс документа), этап действительно будет доступен в конструкторе.мы можем немедленно вызвать init ().если этот класс создан другим классом, он не сможет получить доступ к сцене из конструктора: ему придется подождать, пока он будет добавлен на сцену, прежде чем
init () может иметь другое имя, кстати: setup, reset ... что угодно, это просто неформальное "соглашение";по крайней мере, когда вы видите где-нибудь функцию инициализации, вы можете быть почти уверены, что она инициализирует объект, как только все необходимые данные будут готовы:)