Белый экран симуляции прелоадера: AS3
В настоящее время у меня есть некоторые проблемы с моим preloader.
У меня есть сайт класса as3 со следующим кодом:
public function Website() {
addEventListener(Event.ENTER_FRAME, PreloaderStart);
}
private function PreloaderStart(e:Event):void {
var bt:int=loaderInfo.bytesTotal;
var bl:int=loaderInfo.bytesLoaded;
trace(bl/bt);
var pt:int=Math.round(100*bl/bt);
preloaderMC.loadInfo.text="loading "+pt+"%";
if (bl==bt) {
removeEventListener(Event.ENTER_FRAME, PreloaderStart);
PreloaderOnComplete();
}
}
private function PreloaderOnComplete():void {
trace("loaded");
buildUI();
}
Я покрасил свою сцену в черный цвет, и когда я просто запустил свой флэш-файл, он проследил "загружен", поэтому все загружается хорошо, и он создает пользовательский интерфейс. Но когда я симулирую, нажав Ctrl+ Enter дважды, я получаю белый экран и примерно через 10 секунд. (у меня swf 1 Мб, он имитирует 100 кбит / с), он мгновенно отображает предварительный загрузчик на 100% и загружает мой пользовательский интерфейс. Так что мой текст не меняется с 0% -> 100%, но я просто получаю 100%, когда все загружено.
если кто-нибудь может мне помочь, я был бы благодарен.
С уважением
2 ответа
Посмотрите на первый кадр с помощью профилировщика. Если вам нужно загрузить много вещей, вы можете переместить их во 2-й кадр и оставить как можно меньше вещей для первого кадра.
Если вы посмотрите в профилировщике пропускной способности и смоделируете загрузку, вы увидите, что предварительный загрузчик или любой контент отображается только после загрузки 1-го кадра.
Возможно, вам придется установить рамку экспорта параметров ActionScript равной 2, в зависимости от того, какие классы / компоненты вы используете.
НТН
Если ваш вызов buildUI ссылается на какие-либо другие классы (что он, вероятно, делает), весь этот код также будет загружен в первый кадр.
Предполагая, что вы используете Flash, а не Flex Builder, ваш вызов buildUI() лучше разместить во втором кадре. И сделайте то, что Джордж написал по поводу экспорта ActionScript во второй кадр.