Flex BulkLoader
Today i’ve played a little bit with Arthus Debert’s BulkLoader and put it together in a really simple Flex-Application. It does nothing more than loading content in a streamlined form, so the perfomance for asset-overheaded applications should be better. Next time i give Donovan Adams QueueLoader a try.
ItemLoader.as
package loading
{
import br.com.stimuli.loading.BulkLoader;
import br.com.stimuli.loading.BulkProgressEvent;
import caurina.transitions.Tweener;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
import mx.core.UIComponent;
public class ItemLoader extends UIComponent
{
private var _bulkLoader:BulkLoader;
private var _bg:URLRequest;
private var _bmp:Bitmap;
private var _loaderBar:Sprite;
private var _sw:Number;
private var _sh:Number;
public function ItemLoader()
{
_bulkLoader = new BulkLoader("mainLoader");
_bg = new URLRequest("assets/images/bg.jpg");
_bulkLoader.add(_bg);
_bulkLoader.addEventListener(BulkProgressEvent.COMPLETE, onCompleteHandler);
_bulkLoader.addEventListener(BulkProgressEvent.PROGRESS, onProgressHandler);
addEventListener(Event.ADDED_TO_STAGE, stageHandler);
_bulkLoader.start();
createLoaderBar();
}
private function stageHandler(e:Event):void
{
_sw = stage.stageWidth;
_sh = stage.stageHeight;
}
private function onCompleteHandler(e:ProgressEvent):void
{
_bmp = _bulkLoader.getBitmap("assets/images/bg.jpg");
_bmp.width = 1057;
_bmp.height = 600;
_bmp.smoothing = true;
_bmp.alpha = 0;
addChild(_bmp);
Tweener.addTween(_bmp, {alpha:1, time:0.4, transition:"easeInQuart"});
fadeLoaderBar()
}
private function createLoaderBar():void
{
_loaderBar = new Sprite();
_loaderBar.graphics.beginFill(0xff0000, 1.0);
_loaderBar.graphics.drawRect(0,0,1, 2);
ddChild(_loaderBar);
}
private function onProgressHandler(e:ProgressEvent):void
{
trace("Loaded" , e.bytesLoaded," of ", e.bytesTotal);
_loaderBar.width = ((e.bytesLoaded / e.bytesTotal) * 1057);
}
private function fadeLoaderBar():void
{
Tweener.addTween(_loaderBar, {alpha:0, time:1, transition:"easeOutQuad", onComplete:removeLoaderBar })
}
private function removeLoaderBar():void
{
removeChild(_loaderBar);
}
}
}
Check out the Application loading a large .jpg
1 Comment so far
Leave a reply

It loads an image - large? maybe! - an now?

Keep up your good work. Do somemore stuff here, like your xml banner- / imagerotator.