6

QueueLoader AS3 Guide (rev10)


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

Here are some different ways to use QueueLoader.

Basic Loading

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var _oLoader:QueueLoader = new QueueLoader();
var img = new Sprite();
addChild(img);
_oLoader.addItem("images/image1.jpg"), img, {title:"Image "});
_oLoader.execute();

Load Monitoring

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var _oLoader:QueueLoader = new QueueLoader();
var img1 = new Sprite();
addChild(img1);
_oLoader.addItem("images/image1.jpg"), img1, {title:"Image 1"});
var img2 = new Sprite();
addChild(img2);
_oLoader.addItem("images/image2.jpg"), img2, {title:"Image 2"});
 
_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);
_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("\n>>"+event.message+"\n");
}
 
function onItemError(event:QueueLoaderEvent):void {
	trace("\n>>"+event.message+"\n");
}
 
function onQueueInit(event:QueueLoaderEvent):void {
	trace("\n>>"+event.message+"\n");
}

Manually specifying a MIME type

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var _oLoader:QueueLoader = new QueueLoader();
var img = new Sprite();
addChild(img);
_oLoader.addItem("images/image1.jpg"), img, {title:"Image ", mimeType:QueueLoader.FILE_IMAGE});
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_INIT, onQueueInit,false, 0, true);
_oLoader.execute();

Loading XML

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var _oLoader:QueueLoader = new QueueLoader();
var _xml:XML;
 
_oLoader.addItem("includes/admin/test.xml", null, {title:"XML"});
_oLoader.addEventListener(QueueLoaderEvent.ITEM_INIT, onItemInit,false, 0, true);
_oLoader.execute();
 
function onItemInit(event:QueueLoaderEvent):void {
	trace("\t>> XML: "+event.type, "item title: "+event.title);
	if(event.filetype == QueueLoader.FILE_XML){
		_xml = new XML(event.file);
	}
}

Loading CSS

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var _oLoader:QueueLoader = new QueueLoader();
var _css:StyleSheet = new StyleSheet();
 
_oLoader.addItem("includes/admin/style.css", null, {title:"CSS"});
_oLoader.addEventListener(QueueLoaderEvent.ITEM_INIT, onItemInit,false, 0, true);
_oLoader.execute();
 
function onItemInit(event:QueueLoaderEvent):void {
	if(event.filetype == QueueLoader.FILE_CSS){
		trace("\t>> CSS: "+event.type, "item title: "+event.title);
		_css.parseCSS(event.file);
	}
}

Drawing the frames of an external SWF to Bitmap Objects in an Array

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var externalImageBitmapContainer:Bitmap = new Bitmap();
addChild(externalImageBitmapContainer);
var externalImageContainer:Sprite = new Sprite();
addChild(externalImageContainer);
 
var _oLoader:QueueLoader = new QueueLoader();
_oLoader.addItem("flashassets/swf/externalimages.swf", externalImageContainer, {title:"externalimages", drawFrames:true});
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_INIT, onQueueInit,false, 0, true);
_oLoader.execute();
 
function onQueueInit(event:QueueLoaderEvent):void {
	trace("** "+event.type);
	// This passes a Bitmap object of the 2nd frame
	// in the external swfstored in bmArray
	externalImageBitmapContainer.bitmapData = event.bmArray[1];
}

Accessing Class references in an externally loaded SWF

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
var addedDefinitions:LoaderContext = new LoaderContext();
addedDefinitions.applicationDomain = ApplicationDomain.currentDomain;
 
var _oLoader:QueueLoader = new QueueLoader(false, addedDefinitions, true);
 
var soundSWF = new MovieClip();
soundSWF.name = "externalSounds";
addChild(soundSWF);
 
var soundChannel:SoundChannel = new SoundChannel();
 
_oLoader.addItem(prefix("") + "flashassets/swf/externalsounds.swf", soundSWF, {title:"sounds", drawSWF:false, mimeType:QueueLoader.FILE_SWF});
_oLoader.addEventListener(QueueLoaderEvent.QUEUE_INIT, onQueueInit,false, 0, true);
_oLoader.execute();
 
 
function onQueueInit(event:QueueLoaderEvent):void {
	trace("** "+event.type);
	var Loop1Reference:Class = getDefinitionByName("Loop1") as Class;
	var loop1:Sound = new Loop1Reference();
	soundChannel = loop1.play();
}

Adding items on the fly

import com.hydrotik.utils.QueueLoader;
import com.hydrotik.utils.QueueLoaderEvent;
 
 
var _oLoader:QueueLoader = new QueueLoader();
var imageContainer:Sprite = new Sprite();
addChild(imageContainer);
 
var _xml:XML;
 
_oLoader.addItem("includes/admin/test.xml", null, {title:"XML", mimeType:QueueLoader.FILE_XML});
_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);
_oLoader.execute();
 
function onQueueStart(event:QueueLoaderEvent):void {
	trace("\t>> "+event.type, "item title: "+event.title);
}
 
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.type, "item title: "+event.title);
 
	if (event.filetype == QueueLoader.FILE_XML) {
		_xml = new XML(event.file);
		var imageList:XMLList = _xml.images.children();
 
		for (var i:int = 0; i < imageList.length(); i++) {
			var img = new Sprite();
			imageContainer.addChild(img);
			_oLoader.addItem(imageList[i].attribute("src"), img, {title:"Image "+i});
		}
	}
}
 
function onItemError(event:QueueLoaderEvent):void {
	trace("\n>>"+event.message+"\n");
}
 
function onQueueInit(event:QueueLoaderEvent):void {
	trace("\t>> "+event.type, "item title: "+event.title);
}

This covers most of the features in the current rev. More to come!

01

QueueLoader AS3 rev 10


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

Rev 10 Update
You can easily draw the frames of an externally loaded SWF to bitmap objects in an Array which was suggested by Carlos Ulloa. I'm still looking for people to help with rigorous testing and features. Contact me if you are interested.

0

Papervision 2.0


Had a great time at the Papervision 2.0 seminar with John Grden and Andy Zupko here in NYC. Lot of eager people braving the cold snowy weather. It was slow at times trying to get everyone going on Flex. This gave me time to get the demos working in AS3 only FDT projects. Hopefully with John's and Andy's blessing I can put those demos here on the blog :)

  • Viagra ordre
  • Cialis en ligne
  • Levitra en ligne
  • Propecia acheter
  • Viagra acheter
  • Acheter cialis
  • Ordre levitra
  • Ordre propecia
  • En ligne viagra
  • Vente cialis
  • Levitra bon marche
  • Propecia en ligne
  • Viagra online
  • Buy cialis
  • Order Levitra
  • Buy propecia
  • Buy viagra
  • Cheap cialis
  • Cheap Levitra
  • propecia online
  • Viagra prescription
  • Cialis online
  • Buy Levitra
  • Order propecia