Цитата:
Как его до маин класса вписывать,или не обязательно, если не обязательно так это схемотично выглядит хотя бы вообще меленький пример
|
Например если вы пишете не во Flash, в другой среде, где нет "явных" кадров, то можно вставить кадр перед маин классом. В том же Flashdevelop есть шаблон для прелоадера:
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.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.utils.getDefinitionByName;
public class Preloader extends MovieClip
{
public function Preloader()
{
if (stage) {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
}
addEventListener(Event.ENTER_FRAME, checkFrame);
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
// TODO show loader
}
private function ioError(e:IOErrorEvent):void
{
trace(e.text);
}
private function progress(e:ProgressEvent):void
{
// TODO update loader
}
private function checkFrame(e:Event):void
{
if (currentFrame == totalFrames)
{
stop();
loadingFinished();
}
}
private function loadingFinished():void
{
removeEventListener(Event.ENTER_FRAME, checkFrame);
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
// TODO hide loader
startup();
}
private function startup():void
{
var mainClass:Class = getDefinitionByName("Main") as Class;
addChild(new mainClass() as DisplayObject);
}
}
}
Main
Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
[Frame(factoryClass="Preloader")] // <-------------
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
}
}
Добавлено через 4 минуты
Да, вы правильно поняли голику по пунктам 1-5.
Цитата:
А то что документ класс по умолчанию все равно вшит в первый кадр,ничего страшного я так понимаю,
|
Документ класс - это не только первый кадр. Это все кадры главной линии времени (если они есть).