Вот так:

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preloader="CustomPreloader">
</mx:Application>
А вот и сам класс CustomPreloader.as

Код AS3:
package
{
import assets.PreloaderSuperStar;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import mx.events.FlexEvent;
import mx.preloaders.DownloadProgressBar;
public class CustomPreloader extends DownloadProgressBar {
private var loader:Loader;
private var clip:PreloaderSuperStar;
private var progress:Number;
public function CustomPreloader()
{
super();
clip = new PreloaderSuperStar();
addChild(clip);
}
override public function set preloader( preloader:Sprite ):void
{
preloader.addEventListener( ProgressEvent.PROGRESS , onSWFDownloadProgress );
preloader.addEventListener( Event.COMPLETE , onSWFDownloadComplete );
preloader.addEventListener( FlexEvent.INIT_PROGRESS , onFlexInitProgress );
preloader.addEventListener( FlexEvent.INIT_COMPLETE , onFlexInitComplete );
clip.textLoader.text = "loading game...";
clip.preloader.bar.width = 1;
}
private function onSWFDownloadProgress( event:ProgressEvent ):void
{
var t:Number = event.bytesTotal;
var l:Number = event.bytesLoaded;
var p:Number = Math.round( (l / t) * 100);
clip.textLoader.text = "loading game "+String(p)+"%";
clip.preloader.bar.width = p;
}
private function onSWFDownloadComplete( event:Event ):void
{
}
private function onFlexInitProgress( event:Event ):void
{
clip.textLoader.text = "initializing...";
}
private function onFlexInitComplete( event:Event ):void
{
dispatchEvent( new Event( Event.COMPLETE ) );
}
}
}
Класс PreloaderSuperStar это клип с графикой и текстовым полем подключенный из swc.