Hey,
What I am trying to do is loop through an XML file that contains external image links, preload all the images and then run an initialiseNav() function when all images are preloaded.
I also need to be able to calculate the TOTAL Progress % of ALL images being preloaded together.
Here is my current code:
// XML Holder.
var myXML:XML;
// XML URL Request.
var xmlRequest:URLRequest = new URLRequest("nav.xml");
// XML URL Loader.
var xmlLoader:URLLoader = new URLLoader();
// Image Loader.
var imageLoader:Loader;
// Number of Icons
var nItems:Number;
// Image Width.
var nWidth:Number;
// Image Height.
var nHeight:Number;
// Time Between Images.
var nTimer:Number;
// Arrow Color.
var sArrowColor:String;
// XML Event Load Handler.
function xmlLoaded(e:Event):void {
// Set XML.
myXML = new XML(e.target.data);
// Image Width.
nWidth = myXML.options.images.width;
// Image Height.
nHeight = myXML.options.images.height;
// Time Between Images.
nTimer = myXML.options.icondelay;
// Arrow Color.
sArrowColor = myXML.options.arrowcolor;
// Create XML List.
var xmlListIcons:XMLList = myXML.items.children();
// Number of Icons
nItems = xmlListIcons.length();
// Loop Creating Icons.
for each (var xmlIconElement:XML in xmlListIcons) {
// Create mcLinkContainer
var mcContainer:MovieClip = new MovieClip();
imageLoader = new Loader();
imageLoader.load(new URLRequest(xmlIconElement.image));
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
mcContainer.addChild(imageLoader);
addChild(mcContainer);
}
//initialiseNav();
}
// Preload Function
function loadProgress(e:ProgressEvent):void {
var nLoaded:Number = e.bytesLoaded / e.bytesTotal;
nLoaded = Math.round(nLoaded * 100);
trace("Loading: " + nLoaded + "%");
}
// Load XML.
xmlLoader.load(xmlRequest);
// Listeners.
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
I can see in the debugger that every image is being preloaded together at once, however I need some way to calculate the total % of all the images being preloaded as well as running the initialiseNav() function when all images are preloaded.
I thought about using an Array to store all the preloaded images and then test the total % of that but I’m unsure how.
Can anyone help please?