Я сделал прелоадер примерно так:

Код AS3:
var ldr:Loader;
var urlReq:URLRequest;
function LoadSWF(Load_url:String):void // Функция загружающая swf
{
urlReq = new URLRequest(Load_url);
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, urlLoader_complete); // слушатель событий окончания загрузки
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener); // слушатель событий для процесса загрузки
ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); // слушатель событий для ошибок
ldr.load(urlReq);
}
function urlLoader_complete(e:Event):void
{
ldr.x = 0; // координата x
dr.y = 0; // координата y
addChild(ldr); // добовляем загруженный swf на сцену. Если добовляем в какой то объект то соответственно объект.addChild(ldr);
}
function progressListener(e:ProgressEvent):void
{
info.text = Math.floor(e.bytesLoaded/e.bytesTotal*100) + '%'; // info текстовое поле, где отобразаем процент загрузки
}
function urlNotFound(e:Event):void
{
trace('Ошибка');
}