20

QueueLoader AS3 rev 5


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

I've updated QueueLoader once again with some significant enhancements.

  • MP3 loading (to a target Sound object)
  • Added file access (for swf timeline access, and Bitmap access)

Example code:

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
 
//Instantiate the QueueLoader and init vars
var _oLoader:QueueLoader = new QueueLoader();
var startX:int = 0;
var swfClip:MovieClip;
 
 
//Draw some progress indicators
var itemprog:Shape = new Shape();
itemprog.graphics.beginFill(0x333333, 1);
itemprog.graphics.drawRect(0, 0, 1, 2);
itemprog.graphics.endFill();
addChild(itemprog);
itemprog.x = 10;
itemprog.y = 350;
 
var queueprog:Shape = new Shape();
queueprog.graphics.beginFill(0x333333, 1);
queueprog.graphics.drawRect(0, 0, 1, 2);
queueprog.graphics.endFill();
addChild(queueprog);
queueprog.x = 10;
queueprog.y = 400;
 
 
//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(prefix("") + "flashassets/images/slideshow/"+i+".jpg", image, {title:"Image "+i});
	//Move the image over a bit
	startX = startX + 50;
}
 
//Let's add an external swf file!
var swf:MovieClip = new MovieClip();
swf.x = 353;
swf.y = 152;
swf.name = "swf";
addChild(swf);
_oLoader.addItem(prefix("") + "flashassets/swf/externalswf.swf", swf, {title:"swf"});
 
 
//Let's add a sound!
var sound:Sound = new Sound();
//sound.play();
_oLoader.addItem(prefix("") + "flashassets/mp3/jens_buchert.mp3", sound, {title:"mp3"});
 
//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]);
	itemprog.width = 150 * event.percentage;
	item.text = "Item Progress: "+Math.round(event.percentage * 100)+ "%"
}
 
function onQueueProgress(event:QueueLoaderEvent):void {
	trace("\t>> "+event.type+": "+[" queuepercentage: "+event.queuepercentage]);
	queueprog.width = 150 * event.queuepercentage;
	queue.text = "Queue Progress: "+Math.round(event.queuepercentage * 100)+ "%"
}
 
function onItemInit(event:QueueLoaderEvent):void {
	trace("\t>> "+event.type, "item title: "+event.title);
 
	//If the file is a swf lets store a reference to it.
	if(event.filetype == QueueLoader.FILE_SWF){
		trace(event.file);
		swfClip = event.file;
	}
}
 
function onItemError(event:QueueLoaderEvent):void {
	trace("\n>>"+event.message+"\n");
}
 
function onQueueInit(event:QueueLoaderEvent):void {
	trace("** "+event.type);
 
	// play the sound!
	sound.play();
	// play the swf!
	event.file.gotoAndPlay(2);
}
 
 
//function for simply adds a filepath prefix
function prefix(serverPath:String):String {
	var playerType:String = Capabilities.playerType;
	if (playerType == "External" || playerType == "StandAlone") {
		return "../";
	} else {
		return serverPath;
	}
}

Here are the current QueueLoader event variables for retrieving data as well as filetype constants:

// Queue item start event
public static var ITEM_START:String = "itemStart"; 
 
// Queue item start event
public static var ITEM_PROGRESS:String = "itemProgress"; 
 
// Queue item init/complete event
public static var ITEM_INIT:String = "itemInit"; 
 
// Queue item error event
public static var ITEM_ERROR:String = "itemError"; 
 
// Queue start event
public static var QUEUE_START:String = "queueStart";
 
// Queue progress event
public static var QUEUE_PROGRESS:String = "queueProgress"; 
 
// Queue init/complete event
public static var QUEUE_INIT:String = "queueInit"; 
 
// The queue item container
public var targ:*; 
 
// The queue item title
public var title:String = ""; 
 
// The queue item filetype (QueueLoader.FILE_IMAGE, QueueLoader.FILE_SWF, QueueLoader.FILE_AUDIO)
public var filetype:int; 
 
// The queue item loaded file (ie if you load a swf, this would reference its Timeline)
public var file:*;
 
// The queue item url/path
public var path:String;
 
// The queue item bytes loaded 
public var bytesLoaded:Number = -1;
 
// The queue item total file size
public var bytesTotal:Number = -1;	
 
// The queue item percentage loaded
public var percentage:Number = 0;
 
// The total queue percentage loaded
public var queuepercentage:Number = 0;
 
// The current queue item index 
public var count:int;	
 
// The remaining queue length
public var length:int;
 
// The total queue length
public var max:int;
 
// The queue items width
public var width:Number;
 
// The queue item height
public var height:Number;
 
// unused
public var message:String = "";	
 
// unused
public var dataObj:Object = null;

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

  • Viagra online
  • Order cheap cialis
  • Buy viagra no prescription
  • Cialis online
  • Buy generic cialis
  • Order propecia no prescription
  • Cheap propecia online
  • Propecia online pharmacy
  • Order levitra online
  • Cheap price cialis
  • Online pharmacy levitra
  • Buy viagra online
  • Buy discount levitra
  • Cheap cialis online
  • Propecia hair loss