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

Reply via email to