Hey everyone, I’m new here, but I have this problem with some stock code I’ve modified. Everything was working great until I tested it online, and found it was slow as all hell. It turns out that instead of loading and adding all the images one at a time, it loads all the files from the XML, and then adds them all to children, which in my case is 45 large images/swfs.
I’m not at a coding level where I can do what I want from scratch, and this is a big deal/urgent deal so any help would be greatly appreciated.
I would very much prefer to use this code over starting with a new XML Slideshow, as I’ve customized this one with tweener and a button which loads another version of the current image when hovered over (this is working fine at the moment as well).
So if you have a moment, thank you. I am only going to post the code that is necessary otherwise this page will be huge.
//==================================================================================================================
//--- VARIABLES
//==================================================================================================================
var xmlPath:String = "bestBook/_DEPLOY/xml/md_slider.xml"; // path for xml file
var slideType:String = "RightToLeft"; // 4 kinds: RightToLeft, LeftToRight, TopToBottom, BottomToTop
var transitionTime:int = 1; // time for easing animation
var transitionType:String = "easeOutQuart"; // what type of easing animation
var looping:Boolean = false; // turn image looping on/off
var autoRun:Boolean = false; // set slider to run automatically
var autoRunSeconds:int = 3; // seconds between slides
var clickable:Boolean = false; // allow image links
var showNav:Boolean = true; // show left/right arrows or not
var showPreloader:Boolean = true; // show preloader or not
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
var slider_obj:Object = new Object();
var nextPic:int;
var nowShowing:int;
var count:Number = 0;
var img_loaders:Array = new Array();
var img_arr:Array = new Array();
var preloader:MovieClip;
var testload:Loader = new Loader();
var bitMap:Bitmap;
var bitMap2:Bitmap;
//==================================================================================================================
//--- XML LOADER
//==================================================================================================================
xmlLoader.addEventListener(Event.COMPLETE, xmlParser);
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, throwIOError);
function xmlParser(e:Event):void {
try
{
xmlData = new XML(e.target.data);
// populate object
slider_obj.itemNum = xmlData.item.length();
slider_obj.imagePath = xmlData.attribute("imagePath");
slider_obj.swfPath = xmlData.attribute("swfPath");
slider_obj.itemType = xmlData.item.attribute("type");
slider_obj.itemURL = xmlData.item.attribute("url");
slider_obj.itemWindow = xmlData.item.attribute("window");
slider_obj.itemImage = xmlData.item.image;
slider_obj.itemOver = xmlData.item.over;
loadImages();
startTimer();
}
catch (e:Error)
{
throwError(e.message);
return;
}
}
//==================================================================================================================
//--- INIT MC
//==================================================================================================================
function initMC():void {
// load xml
xmlLoader.load(new URLRequest(xmlPath));
}
//==================================================================================================================
//--- IMAGE LOADER
//==================================================================================================================
var itemPath:String;
function loadImages():void {
for (var n:Number = 0; n < slider_obj.itemNum; n++) {
img_loaders[n] = new Loader();
img_loaders[n].name = "loader_" + n;
img_loaders[n].contentLoaderInfo.addEventListener(Event.COMPLETE, imageComplete);
img_loaders[n].contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, throwIOError);
switch(slider_obj.itemType[n].toString()) {
case "img":
itemPath = slider_obj.imagePath;
break;
case "swf":
itemPath = slider_obj.swfPath;
break;
default:
itemPath = slider_obj.imagePath;
break;
}
var imgToLoad:URLRequest = new URLRequest(itemPath + slider_obj.itemImage[n].toString());
img_loaders[n].load(imgToLoad);
}
preloader = new(preload);
addChild(preloader);
if (showPreloader == false) {
preloader.visible = false;
}
preloader.x = 485;
preloader.y = 300;
}
//==================================================================================================================
//--- IMAGE LOAD HANDLERS
//==================================================================================================================
function imageComplete(e:Event):void {
//removeChildAt(0);
count++;
var quickNum:Number = Number(e.target.loader.name.substr(7));
img_arr[quickNum] = e.target.content;
//bitMap = Bitmap(e.target.content);
//bitMap.smoothing = true;
if (count == slider_obj.itemNum) {
for (var n:int = 0; n < img_arr.length; n++) {
addChild(img_arr[n]);
img_arr[n].visible = false;
if (clickable == true && slider_obj.itemType[n].toString() != "swf") enableClicks(img_arr[n], n);
if (n==0) slideFWD(0);
}
}
// Loads next, back, and mouse over buttons... later in the code
loadButtons();