Судя по всему мейн из флешДевелопа, так кто же помешал создать проект с прелоаедером? Там уже люди подумали за вас.
И матерился бы поменьше, выхватишь пару плюсов. Звездочки вопроса не решают

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.ProgressEvent;
import flash.events.Event;
/**
* вот эта штука вставляет класс с именем Preloader
* в кадр который следует перед мейном
*/
[Frame(factoryClass="Preloader")]
public class Main extends Sprite
{
[Embed(source = '../bin/DSC_5350.JPG')] private var oh1:Class;
[Embed(source = '../bin/DSC_5350.JPG')] private var oh2:Class;
[Embed(source = '../bin/DSC_5350.JPG')] private var oh3:Class;
[Embed(source = '../bin/DSC_5350.JPG')] private var oh4:Class;
[Embed(source = '../bin/DSC_5350.JPG')] private var oh5:Class;
private var total :Number = 0;
private var load :Number = 0;
public function Main()
{
var spr1:Sprite = new Sprite();
var spr2:Sprite = new Sprite();
var spr3:Sprite = new Sprite();
var spr4:Sprite = new Sprite();
var spr5:Sprite = new Sprite();
spr1.addChild(new oh1());
spr2.addChild(new oh2());
spr3.addChild(new oh3());
spr4.addChild(new oh4());
spr5.addChild(new oh5());
addChild(spr1);
addChild(spr2);
addChild(spr3);
addChild(spr4);
addChild(spr5);
//Убираем листенеры отсюда
}
}
}
А вот собственно и сам прелоадер, Всё вот эти вот прогресс ивенты тут.

Код 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.MouseEvent;
import flash.events.ProgressEvent;
import flash.text.TextField;
import flash.utils.getDefinitionByName;
/**
* ...
* @author Dukobpa3
*/
public class Preloader extends MovieClip
{
private var tf:TextField = new TextField();
private var pourc:int = 0;
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);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
this.addChild(tf);
}
private function onMouseMove(e:MouseEvent):void
{
tf.x = mouseX + 20;
tf.y = mouseY;
}
private function ioError(e:IOErrorEvent):void
{
trace(e.text);
}
private function progress(e:ProgressEvent):void
{
// TODO update loader
pourc = e.bytesLoaded / e.bytesTotal * 100;
tf.text = pourc.toString(10);
}
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);
startup();
}
private function startup():void
{
this.removeChild(tf);
//this.stage.addChild(new FlashPreloadProfiler());
var mainClass:Class = getDefinitionByName("MVCMain") as Class;
addChild(new mainClass() as DisplayObject);
}
}
}