Would be nice if you could just throw data at it in one go, rather than having to iterate through your data and adding them one at a
time.
Something like this:
var data:XML = <data>
<img src="jpg/cinematic001.jpg" />
<img src="jpg/cinematic002.jpg" />
<img src="jpg/cinematic003.jpg" />
</data>;
var imgLoader:BulkLoader = new BulkLoader();
imgLoader.addEventListener(BulkLoader.COMPLETE, allItemsLoaded, false, 0, true
);
imgLoader.dataFormat = BulkLoaderDataFormat.XML_FORMAT;
imgLoader.dataField = "@src";
imgLoader.data = data.img;
imgLoader.start();
Now BulkLoader would take care of creating the LoadingItem instances, based on
the dataFormat and dataField.
And it would handle XML (as above), Array of Objects (complex data), Array of
Strings (simple data).
// complex data
var data:Array= [{src:"cinematic003.jpg"}, {src:"cinematic003.jpg"},
{src:"cinematic003.jpg"}];
var imgLoader:BulkLoader = new BulkLoader();
imgLoader.dataFormat = BulkLoaderDataFormat.COMPLEX_FORMAT;
imgLoader.dataField = "src";
imgLoader.data = data;
// simple data (no need for dataField)
var data:Array= ["cinematic003.jpg", "cinematic003.jpg", "cinematic003.jpg"];
var imgLoader:BulkLoader = new BulkLoader();
imgLoader.dataFormat = BulkLoaderDataFormat.SIMPLE_FORMAT;
imgLoader.data = data;
Just a thought :)
regards,
Muzak
----- Original Message -----
From: "Karim Beyrouti" <[email protected]>
To: "Flash Coders List" <[email protected]>
Sent: Sunday, July 26, 2009 12:31 PM
Subject: Re: [Flashcoders] Image loader problem
I went for bulkloader over making my own queued loader - as it has so many tested features. Here is a little code to help get you
started ( if you need it )...
Instantiate the loader...
<code>
// New Bulk Loader
imgLoader = new BulkLoader( 'NameOfLoaderInstance');
imgLoader.addEventListener(BulkLoader.COMPLETE, AllItemsLoaded , false , 0 ,
true );
</code>
Load images:
<code>
// Clear the loader of any previously loaded images
imgLoader.removeAll();
// Add all the images to the loading queue
for ( var i : int = 0 ; i < _data.length ; i ++ ){
var record : Object = _data.getItemAt( i );
var item : LoadingItem = imgLoader.add( record['uri'] );
item.addEventListener( Event.COMPLETE , completeHandler , false , 0 , true );
item.addEventListener( ProgressEvent.PROGRESS , progressHandler , false , 0 ,
true );
}
// start loading - one item at a item - this will load images in the order you
added them
imgLoader.start( 1 );
</code>
Image Loaded Event Handler:
<code>
private function completeHandler( e : Event ) : void {
//----------------------------------------
// remove event listeners and reference the bitmap
var item:LoadingItem = e.target as LoadingItem;
item.removeEventListener( Event.COMPLETE , completeHandler );
item.removeEventListener( ProgressEvent.PROGRESS, progressHandler );
var sURL : String = item.url.url;
var record : Object = getRecordByKey( sURL, 'uri' );
record.loadid = sURL;
view.addImage( imgLoader.getBitmap( record.loadid ) , record );
}
</code>
hope this helps...
Regards
Karim
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders