Цитата:
Сообщение от romsvm
а в классе FunnyWar есть такая строчка перед объявлением класса?
 Код AS3:
[Frame(factoryClass="Preloader")]
более подробно тут можно почитать
|
Изначально не было.
Почитал эту статью, сделал загрузчик как там описано:

Код AS3:
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.utils.getDefinitionByName;
public class FDPreloader extends MovieClip
{
public function FDPreloader()
{
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addEventListener(Event.ENTER_FRAME, enterFrame);
}
public function enterFrame(event:Event):void
{
trace(totalFrames);
if(framesLoaded == totalFrames)
{
removeEventListener(Event.ENTER_FRAME, enterFrame);
nextFrame();
init();
}
else
{
var percent:Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
}
}
private function init():void
{
var mainClass:Class = Class(getDefinitionByName("FunnyWar"));
if(mainClass)
{
var app:Object = new mainClass();
addChild(app as DisplayObject);
}
}
}
}
В классе FunnyWar тоже добавил строчку:

Код AS3:
[Frame(factoryClass="FDPreloader")]
public function FunnyWar():void
{
if (stage) initialize();
else this.addEventListener(Event.ADDED_TO_STAGE, initialize, false, 0, true);
}
Результат: 0.
В статье написано, что тег Frame вынуждает компилятор создать 2 кадра, в персом работает загрузчик, во втором, начинает грузиться отстальное. Как можно заметить, в коде я добавил строчку:

Код AS3:
trace(totalFrames);
Если верить этой статье, то кадров должно быть уже 2, но трейс выдает 1.
В чем подвох?
Цитата:
|
Давно не компилил во Флэше, но вроде там надо галочку "грузить в первый кадр" снять со всех объектов в библиотеке (кроме тех что относятся к прелоадеру конечно).
|
Убрал. Напрочь убивает приложение.
Цитата:
|
Угу, а потом во 2 кадр положить все эти объекты. Инициализировать всё в 3. Ужас. короче )
|
У меня в кадрах вообще ничего не инициализируется