Xml slideshow preloader

Hi all, I’m currently using an adaptation of one of the versions of FlawlessDog XML Flash Slideshow here:

http://www.kirupa.com/forum/showpost.php?p=2145614&postcount=13 (Version 401)

It works great for me, but when I upload it online the preloader doesn’t work and it just loads blank bits in between each images.

FlawlessDog has provided me with great support and I can’t thank him enough with how much I appreciate his help.

But I thought I’d post the source from it and see if anyone else has some thoughts :slight_smile:


////////////////////////////////////////////////////////////////
/////////////////////Some new variables/////////////////////////
//bgSlider.slider_1new
//bgSlider.slider_2new
//bgSlider.slider_1old
//bgSlider.slider_2old
//true means the default set "bgSlider.slider_1new" and "bgSlider.slider_2new"
//are the two new Mc's being loaded, and sliding onto the stage.
//"bgSlider.slider_1old" and ""bgSlider.slider_2old" will slide off stage.
var SetToggle:Boolean = true;
var myNext:Boolean=true;
var isDone:Boolean=false;
var p:Number = 0;
var firstLoad:Boolean = true;
var myAutoplay:Boolean = false;
//eggsLoader._visible = false;
eggsLoader._xscale = 0;
pause2_btn._visible = false;
pause1_btn._visible = true;
play2_btn._visible = true;
play1_btn._visible = false;
info2_btn._visible = false;
info_mc._visible = false;
thumbs2_btn._visible = false;
bgSlider.slider_1new._x = -745;
bgSlider.slider_2new._x = 745;
bgSlider.slider_1old._x = 0;
bgSlider.slider_2old._x = 0;

////////////////////////////////////////////////////////////////
////////Load the XML and store it and fire first image//////////
cliparray = [];
loadXML = function(loaded){
    if (loaded) {
        xmlNode = this.firstChild;
        image = [];
        description = [];
		thumbnail = [];
		heading = [];
		info = [];
        total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue;
            description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
			thumbnail* = xmlNode.childNodes*.childNodes[2].firstChild.nodeValue;
			thumbnail_fn(i);
			heading* = xmlNode.childNodes*.childNodes[3].firstChild.nodeValue;
			info* = xmlNode.childNodes*.childNodes[4].firstChild.nodeValue;
        }
        firstImage();
    } else {
        content = "file not loaded!";
    }
};
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images.xml");
////////////////////////////////////////////////////////////////
///////////////Get the controls ready for use///////////////////
listen = new Object();
listen.onKeyDown = function() {
    if (isDone != false){
        if (Key.getCode() == Key.LEFT) {
            myNext = false;
            myCounter = 5;
            myImage();
        }else if (Key.getCode() == Key.RIGHT) {
            myNext = true;
            myCounter = 5;
            myImage();
        }
    }
};
Key.addListener(listen);
backBtn.onRelease = backBtn.onReleaseOutside = function() {
    if (isDone != false){
        myNext = false;
        myCounter = 5;
        myImage();
    }
};
nextBtn.onRelease = nextBtn.onReleaseOutside = function() {
    if (isDone != false){
        myNext = true;
        myCounter = 5;
        myImage();
    }
};
play1_btn.onRelease = nextBtn.onReleaseOutside = function() {
    //myAutoplay = false;
	//play2_btn._visible = false;
	//pause2_btn._visible = true;
	//this._visible = false;
};
play2_btn.onRelease = nextBtn.onReleaseOutside = function() {
    myAutoplay = true;
	play1_btn._visible = true;
	pause2_btn._visible = true;
	this._visible = false;
};
pause1_btn.onRelease = nextBtn.onReleaseOutside = function() {
    //myAutoplay = false;
	//play1_btn._visible = false;
	//pause2_btn._visible = true;
	//this._visible = false;
};
pause2_btn.onRelease = nextBtn.onReleaseOutside = function() {
    myAutoplay = false;
	play2_btn._visible = true;
	pause1_btn._visible = true;
	this._visible = false;
};
info1_btn.onRelease = function() {
	this._visible = false;
	info2_btn._visible = true;
	thumbs1_btn._visible = true;
	thumbs2_btn._visible = false;
	thumbs_mc._visible = false;
	//info_mc.play();
	info_mc._visible = true;
};
info2_btn.onRelease = function() {
	this._visible = false;
	info1_btn._visible = true;
	thumbs1_btn._visible = true;
	thumbs2_btn._visible = false;
	thumbs_mc._visible = true;
	//info_mc.play();
	info_mc._visible = false;
};
thumbs1_btn.onRelease = function() {
	this._visible = false;
	info1_btn._visible = true;
	info2_btn._visible = false;
	//info_mc.play();
	info_mc._visible = false;
	thumbs2_btn._visible = true;
	thumbs_mc._visible = true;
	thumbs_mc.play();
};
thumbs2_btn.onRelease = function() {
	this._visible = false;
	info2_btn._visible = false;
	info1_btn._visible = true;
	//info_mc.play();
	info_mc._visible = false;
	thumbs1_btn._visible = true;
	thumbs_mc.play();
};
////////////////////////////////////////////////////////////////
//////////////////////PreLoader script//////////////////////////
myLoader = function():Void {
	eggsLoader.onEnterFrame = function(){
		eggsLoader._xscale = 0;
		if (SetToggle == true){
			trace(SetToggle);
			var loaded:Number = bgSlider.slider_1new.getBytesLoaded();
			var total:Number = bgSlider.slider_1new.getBytesTotal();
			var eggsLoaded:Number = Math.round(Number(loaded)/Number(total)*100);
			if(Number(loaded) != Number(total)){
				//desc_txt.text = Number(eggsLoaded) + " % Loaded";
				eggsLoader._xscale = Number(eggsLoaded);
			}else{
				movePic();
				desc_txt.text = description[p];
				info_mc.desc_txt.text = description[p];
				info_mc.info_txt.text = info[p];
				delete eggsLoader.onEnterFrame;
			}
		}else if(SetToggle == false){
			trace(SetToggle);
			var loaded:Number = bgSlider.slider_1old.getBytesLoaded();
			var total:Number = bgSlider.slider_1old.getBytesTotal();
			var eggsLoaded:Number = Math.round(Number(loaded)/Number(total)*100);
			if(Number(loaded) != Number(total)){
				//desc_txt.text = Number(eggsLoaded) + " % Loaded";
				eggsLoader._xscale = Number(eggsLoaded);
			}else{
				movePic();
				desc_txt.text = description[p];
				head_txt.text = heading[p];
				info_mc.desc_txt.text = description[p];
				info_mc.info_txt.text = info[p];
				delete eggsLoader.onEnterFrame;
			}
		}
	};
};
////////////////////////////////////////////////////////////////
////////////////////Picture/Text controls///////////////////////
myImage = function():Void {
    //function nextImage()//
    if (myNext == true){
        if(p<(total-1)){
            p++;
			myToggleReader();
        }else if(p >= total-1){
            p=0;
			myToggleReader();
        }
    }else if (myNext == false){
        //function prevImage()//
        if(p>0){
            p--;
			myToggleReader();
        }else if(p<=0){
            p=total-1;
			myToggleReader();
        }
    }
};
myToggleReader = function():Void {
	if (SetToggle == true){
		bgSlider.slider_1new.loadMovie(image[p]);
		bgSlider.slider_2new.loadMovie(image[p]);
	}else if(SetToggle == false){
		bgSlider.slider_1old.loadMovie(image[p]);
        bgSlider.slider_2old.loadMovie(image[p]);
	}
	desc_txt.text = description[p];
	head_txt.text = heading[p];
	info_mc.desc_txt.text = description[p];
	info_mc.info_txt.text = info[p];
	picture_num();
    myLoader();
};
firstImage = function():Void {
    bgSlider.slider_1new.loadMovie(image[0]);
    bgSlider.slider_2new.loadMovie(image[0]);
	desc_txt.text = description[p];
	head_txt.text = heading[p];
	info_mc.desc_txt.text = description[p];
	info_mc.info_txt.text = info[p];
    picture_num();
    myLoader();
};

/*for (var i = 0; i<mainarray[this.ivar].length; i++) {
		var let = main.ppp.scroller.noholder.attachMovie("scrolltex", "st"+i, i);
		if (i+1<10) {
			let.mytext.text = "0"+Number(i+1);
		} else {
			let.mytext.text = i+1;
}*/
		
picture_num = function():Void {
    current_pos = p+1;
    pos_txt.text = current_pos+" of "+total;
};

/*picture_num = function():Void{
	for(var i = 0; i<=[this.ivar].length; i++){
		if (i+1<10){
			current_pos.Number = "0"+Number(i+1);
			pos_txt.text = current_pos+" _ "+total;
		}else{
			current_pos.Number = i+1;
			pos_txt.text = current_pos+" _ "+total;
		}
	}
}*/

////////////////////////////////////////////////////////////////
////////////////////////Timer Function//////////////////////////
///Set for approx 5 seconds in the Number variable myCounter////
var myCounter:Number = 5; 
countDown = function():Void {
	if (myAutoplay == true){
		myCounter--;
		if (myCounter == 0){
			myCounter = 5;
			myNext = myNext;
			myImage();
		}
	}else{
		break;
	}
};
//This fires the countDown function every 1000 milliseconds(1 second)//
var timer:Number = setInterval(countDown, 1000);
////////////////////////////////////////////////////////////////
/////////////////////Thumbnail Functions////////////////////////
this.createEmptyMovieClip("tscroller", 1000);
scroll_speed = 10;
var tot = 0;
tscroller.onEnterFrame = function() {
	if ((_root._ymouse>=thumbs_mc.thumbnail_mc._y) && (_root._ymouse<=thumbs_mc.thumbnail_mc._y+thumbs_mc.thumbnail_mc._height)) {
		if (_root._xmouse>=(thumbs_mc.hit_right._x-40)) {
			for (var obj in cliparray) {
				cliparray[obj]._x -= scroll_speed;
			}
			if (cliparray[0]._x<-cliparray[0]._width) {
				cliparray[0]._x = cliparray[cliparray.length-1]._x+cliparray[cliparray.length-1]._width+5;
				var j = cliparray.splice(0, 1);
				cliparray = cliparray.concat(j);
			}
		} else if (_root._xmouse<=(thumbs_mc.hit_left._x+40)) {
			for (var obj in cliparray) {
				cliparray[obj]._x += scroll_speed;
			}
			if (cliparray[cliparray.length-1]._x>thumbs_mc.hit_right._x) {
				cliparray[cliparray.length-1]._x = cliparray[0]._x-(cliparray[cliparray.length-1]._width+5);
				var j = cliparray.splice(cliparray.length-1, 1);
				cliparray = j.concat(cliparray);
			}
		}
	}
};
function thumbnail_fn(k):Void {
	var yy = thumbs_mc.thumbnail_mc.createEmptyMovieClip("t"+k, thumbs_mc.thumbnail_mc.getNextHighestDepth());
	cliparray.push(yy);
	tlistener = new Object();
	tlistener.onLoadInit = function(target_mc) {
		target_mc._x = 5+(target_mc._width+5)*k;
		//target_mc._y = 5+(target_mc.width+5)*k;
		target_mc.pictureValue = k;
		tot += target_mc._x;
		//tot += target_mc._y;
		target_mc._alpha = 40;
		target_mc.onRelease = function() {
			if (isDone != false){
				myCounter = 5;
				myNext = myNext;
				p = this.pictureValue;
				myToggleReader();
			}
		};
		target_mc.onRollOver = function() {
			this._alpha = 100;
			thumbNailScroller();
			//this._width = "90";
			//this._height = "70";
		};
		target_mc.onRollOut = function() {
			this._alpha = 40;
			//this._width = "90";
			//this._height = "65";
		};
	};
	image_mcl = new MovieClipLoader();
	image_mcl.addListener(tlistener);
	image_mcl.loadClip(thumbnail[k], "thumbs_mc.thumbnail_mc.t"+k);
};
////////////////////////////////////////////////////////////////
///////////////////////Slider Functions/////////////////////////
movePic = function():Void {
    bgSlider.onEnterFrame = function(){
        if (firstLoad == true){
            isDone = true;
            bgSlider.slider_1new._x = 0;
            bgSlider.slider_2new._x = 0;
            bgSlider.slider_1old._x = -745;
            bgSlider.slider_2old._x = 745;
            SetToggle = false;
            firstLoad = false;
            delete bgSlider.onEnterFrame;
        }else{
            if (SetToggle == true){
                if (bgSlider.slider_1new._x == 0 && bgSlider.slider_2new._x == 0){
                    isDone = true;
                    bgSlider.slider_1new._x = 0;
                    bgSlider.slider_2new._x = 0;
                    bgSlider.slider_1old._x = 745;
                    bgSlider.slider_2old._x = -745;
                    SetToggle = false;
                    delete bgSlider.onEnterFrame;
                }else{
                    isDone = false;
                    new mx.transitions.Tween(bgSlider.slider_1new, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_1new._x, 0, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_2new, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_2new._x, 0, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_1old, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_1old._x, -745, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_2old, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_2old._x, 745, 1.5, true);
                }
            }else if(SetToggle == false){
                if (bgSlider.slider_1old._x == 0 && bgSlider.slider_2old._x == 0){
                    isDone = true;
                    bgSlider.slider_1new._x = -745;
                    bgSlider.slider_2new._x = 745;
                    bgSlider.slider_1old._x = 0;
                    bgSlider.slider_2old._x = 0;
                    SetToggle = true;
                    delete bgSlider.onEnterFrame;
                }else{
                    isDone = false;
                    new mx.transitions.Tween(bgSlider.slider_1old, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_1old._x, 0, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_2old, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_2old._x, 0, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_1new, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_1new._x, 745, 1.5, true);
                    new mx.transitions.Tween(bgSlider.slider_2new, "_x", mx.transitions.easing.Elastic.easeOut, bgSlider.slider_2new._x, -745, 1.5, true);
                }
            }
        }
    };
};
stop();

Cheers :slight_smile: