QueueLoader AS3

Latest Version Info:
Click here for the current rev

Click here for the usage guide

Click here for the change log

Also click here for any posts related to the latest changes:
QueueLoader Updates

A while back Felix Raab from betriebsraum did a cool QueueLoader class for AS2 that I used often. I decided to update it for AS3 as my first port of my day to day utilitarian classes. It's still in it's early and raw stages, but at this point I've already been using it regularly.

Shortly I'll post an example of an image gallery using the QueueLoader classes.

Here's a simple example of how to use the class:

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;

//Instantiate the QueueLoader
var _oLoader:QueueLoader = new QueueLoader();

//Run a loop that loads 3 images from the flashassets/images/slideshow folder
for (var i:int = 1; i < 4; i++) {
        //Set up the container
        var image:Sprite = new Sprite();
        image.name = "image_"+i;
        image.x = startX;
        addChild(image);
        //Add a load item to the loader
        _oLoader.addItem("../flashassets/images/slideshow/"+i+".jpg", image, {title:"Image "+i});
        //Move the image over a bit
        startX = startX + 50;
}

//Add event listeners to the loader
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_START, onQueueStart, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_START, onItemStart, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_PROGRESS, onItemProgress, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_INIT, onItemInit,false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.ITEM_ERROR, onItemError,false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_PROGRESS, onQueueProgress, false, 0, true);
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_INIT, onQueueInit,false, 0, true);

//Run the loader
_oLoader.execute();

//Listener functions
function onQueueStart(event:QueueLoaderEvent):void {
        trace(">> "+event.type);
}

function onItemStart(event:QueueLoaderEvent):void {
        trace("\t>> "+event.type, "item title: "+event.title);
}

function onItemProgress(event:QueueLoaderEvent):void {
        trace("\t>> "+event.type+": "+[" percentage: "+event.percentage]);
}

function onQueueProgress(event:QueueLoaderEvent):void {
        trace("\t>> "+event.type+": "+[" queuepercentage: "+event.queuepercentage]);
}

function onItemInit(event:QueueLoaderEvent):void {
        trace("\t>> event:" + event.type+" - "+["target: "+event.targ, "w: "+event.width, "h: "+event.height]+"\n");
}

function onItemError(event:QueueLoaderEvent):void {
        trace("\n>>"+event.message+"\n");
}

function onQueueInit(event:QueueLoaderEvent):void {
        trace("** "+event.type);
}


A more recent version of this code has been posted! Go HERE

Leave a Reply