вот тоже решыл сделать прелоадер правда когда игра жуе была почти полностью готова) почитал статью все чики пуки...вот только не пойму зачем заменять документ клас? весь етот код отлично добавляетья в первый кадр мувика, а в документ класе просто добавляем пару строк чтоб скрипт инициализации срабатывал в третьем кадре..
все свелось к такому коду в первом кадре

Код:
import flash.events.ProgressEvent;
import flash.events.Event;
loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loaderInfo.addEventListener(Event.COMPLETE, loadComplete);
Bar.scaleX = 0;
function loadProgress(e:ProgressEvent):void {
var pct:Number = loaderInfo.bytesLoaded/loaderInfo.bytesTotal;
Bar.scaleX = pct;
}
function loadComplete(e:Event):void {
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress)
loaderInfo.removeEventListener(Event.COMPLETE, loadComplete);
play();
}
кода заметно меньше..ну и соответсвенно в третьем кадре stop(), а вод что добавил в док класе

Код:
public function MainClass() {код заменяем листенером
addEventListener(Event.ENTER_FRAME,init);
}
public function init(evt) {
if (currentFrame==3) {а сюда пихаем изначальный код конструктора
removeEventListener(Event.ENTER_FRAME,init);}
}
и опять же зачем юзать

Код:
pBar = getChildByName("Bar") as Sprite;
если доступ к инстанции класса на стейдже доступен напряму через имя? а getChild необходим для динамически созданных обьектов, ну и если имя составное =)