Основной класс - это обычно класс документа -> класс, который ставится на сцену (корень дерева отображения) первым. Это означает, что в конструкторе (основная функция) у вас уже есть доступ к stage.
if(stage) init();
фактически означает, что если stage! = Null, запустить инициализацию.
зачем проверять нуль в классе документа?
Если ваш SWF получает завернут в другой SWF. Ваша основная функция еще не будет иметь доступа к сцене, потому что только спрайты (видеоклипы и т. Д.), Находящиеся в дереве отображения (на сцене), имеют доступ к сцене.
Как это:
var mc:MovieClip = new MovieClip();//mc.stage == null
stage.addChild(mc);//mc.stage != null
Итак, добавляя слушателя в ADDED_TO_STAGE, вы ждете, пока у вас фактически не появится доступ к сцене, и затем инициируете его. Вы сразу же удаляете слушателя, потому что он вам больше не нужен.
Это обычная ситуация в классе документа (основного), потому что вам нужен этап, чтобы добавить свое меню, вступление, что угодно, чтобы он был видимым.