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 :)

bottega veneta deep coffee pocket bag deep weight loss pills bingo and game casino gambling online virtual how to win at slots versace deep coffee venus bag women does viagra work online bingo uk discount drugstore where to get viagra or cialis diazepam cheap without rx bingo and slots does cialis really work bingo gaming chanel yellow shoulder bag bingo for cash slot machine buy meds online without presciption lancel pearl premier flirt prada white shoulder bag prescriptions pain killers without a prescription viagra product information cialis generic levitra viagra cialis male enhancement online gambling offers manolo blahnik beige hangisi valium indications anya hindmarch beige hobo how does diazepam work who has the cheapest cialis price for tramadol levitra website price for generic viagra top anti depressants pharmacy zolpidem marc jacobs antique gold keylock messenger bag pill for acne casino gambling buy carisoprodol cheap create poker website zyban tablet jimmy choo purple wells shoes valtrex medication counseling for erectile dysfunction hey bingo louis vuitton patent beige sandals louis vuitton monogram idylle pink tote power bingo slot games gucci black evening bag xanax fedex oral jelly viagra new casino slots discount erectile dysfunction medication christian louboutin white ambrosina pumps poker machine games buy no phentermine prescription high stakes poker buy tory burch golden reva ballerina flats casino locations roulette casinos play online casinos bingo and slots viagra effect on women louis vuitton damier graphite keepall bandouliere marc jacobs royal blue keylock shoulder bag play roulette online casino mania online buy compazine buy gucci black trainers online casinos en internet how to win slots christian louboutin blush barcelona sandals prescription diet drugs us only mobile casino games natural clomid buy overseas viagra online casino canada online xanax fedex norvasc generic erectile dysfunction products zoloft canada uk viagra supplier casino bonus tory burch deep blue tory logo rain boots poker for money prescription drugs online adipex no prescription needed pharmacies geniune cialis no prescription ambien dosing how do muscle relaxants work valentino beige snakeskin clutch what is tadalafil ativan dosages sales viagra ysl white muse bag cialis to buy online gambling strategy cheapest phentermine pills christian dior biege medium saddle handbag alprazolam brand cheap viagra new zealand low cost adipex bally patent patent red jana tote ambien pharmacy manolo blahnik bow booties what is viagra used for dosage viagra new diet pill fda approved play slots online now cialis best price las vegas bingo cialis generic tabs versace purple venita bow satchel chloe patent purple cyndi tote fendi apricot snake peekaboo handbag discount lipitor prescription ambien ambien 10mg poker us levitra free samples do meridia phentermine work the same order celine black shoulder bag louis vuitton patent black sandals over the counter medication cheap 37 5 phentermine safe effective diet pills loewe white handbag dolce gabbana black trainers buying phentermine alprazolam generic for xanax ativan 2mg prada beige fairy l bag generic cialis canadian diet phentermine viagra online cheap europe cialis platinum play bingo levitra info prescription drugs migraines levitra alternative phentermine ingredient how does cialis work louis vuitton damier azure canvas galliera gm order amoxicillin new arthritis and psoriasis drug lipitor online pharmacy professional blackjack how does cialis ultram ingredients