Доброго времени суток.
Передо мной встала задача создания прелоадера самой флешки. Программа написана на AS 3.0/Flex без использования Movie CLip'ов. После долгих часов "чтения интернетов" получился такой вариант:

Код AS3:
package {
import flash.display.*;
import flash.events.*;
import mx.events.FlexEvent;
import mx.preloaders.DownloadProgressBar;
import mx.preloaders.IPreloaderDisplay;
public class Preloader extends DownloadProgressBar implements IPreloaderDisplay {
[Embed(source="gui/progressBar/progressBarSources/background.png")]
private var _backGround:Class;
[Embed(source="gui/progressBar/progressBarSources/frontground.png")]
private var _frontGround:Class;
private var _imgBackGround:Bitmap = new _backGround;
private var _imgFrontGround:Bitmap = new _frontGround;
public function Preloader() {
super();
}
override public function set preloader(preloader:Sprite):void {
preloader.addEventListener(ProgressEvent.PROGRESS, handleProgress);
preloader.addEventListener(Event.COMPLETE, handleComplete);
preloader.addEventListener(FlexEvent.INIT_PROGRESS, handleInitProgress);
preloader.addEventListener(FlexEvent.INIT_COMPLETE, handleInitComplete);
}
override public function initialize():void {
this.addChild(_imgBackGround);
this.addChild(_imgFrontGround);
this.x = this.stage.stageWidth / 2 - _imgBackGround.width / 2;
this.y = this.stage.stageHeight / 2 - _imgFrontGround.height / 2;
}
private function loaderCompleteHandler(event:Event):void {
//
}
private function handleProgress(event:ProgressEvent):void {
var percentage:Number = event.bytesLoaded / event.bytesTotal;
if (percentage <= 1) {
_imgFrontGround.scaleX = 1 - percentage;
_imgFrontGround.x = uint(_imgBackGround.width * percentage) + 1;
}
if (percentage > 1)
_imgFrontGround.visible = false;
}
private function handleComplete(event:Event):void {
}
private function handleInitProgress(event:Event):void {
}
private function handleInitComplete(event:Event):void {
dispatchEvent(new Event(Event.COMPLETE));
}
private function handleIOError(event:IOErrorEvent):void {
}
}
}
не могли бы вы дать какие-то советы или посоветовать какие-либо статьи, чтобы сделать наиболее качественный и эффективный прелоадер. Сам я начал изучать Flex/AS3 недавно и очень надеюсь на вашу помощь.
P.S.: используется прелоадер следующим образом:

Код AS3:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:gui="gui.styles.*"
width="760" height="730"
backgroundColor="#001144"
preloader="Preloader"
addedToStage="creationCompleteHandler()">