# Problem With Slideshow Code - Help!

**URL:** <https://forum.kirupa.com/t/problem-with-slideshow-code-help/152709>\
**Category:** flash\
**Created:** [June 26, 2005, 11:43pm UTC](https://forum.kirupa.com/t/problem-with-slideshow-code-help/152709 "2005-06-26T23:43:12Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![MFrederickson50](https://avatars.discourse-cdn.com/v4/letter/m/b19c9b/32.png) [@MFrederickson50](https://forum.kirupa.com/u/MFrederickson50)\
**Post date:** [June 26, 2005, 11:43pm UTC](https://forum.kirupa.com/t/problem-with-slideshow-code-help/152709/1 "2005-06-26T23:43:12Z")

</div>

I am trying to reuse some great code that Todd Domney of [whatdoiknow.org](http://whatdoiknow.org) wrote. It’s a fading slideshow. I’ve had great results with it so far, though I am having one specific bug that I can’t work out for the life of me.

You can view my site here: [http://www.piconeenergy.com/new/](http://www.piconeenergy.com/new/)

Each page on the site has a slideshow associated with it. I will explain how to view the bug. If you click, for example, Contact Us, a movieclip on the stage is told to goto frame 2, and contact us plays. Eventually we get to a stop frame and the slideshow begins fine. Then, if you click another category, and come back to contact us, or click contact us again, often times the slideshow will no longer fade between images. It stalls on the first image, and then just flashes one image after the next, without cross fading. I’ve been looking at this for a long time, and have NO idea why.

**Here’s my code. I have two slideshow layers. On the stop frame, this is the code on a keyframe on one layer:**

MovieClip.prototype.alpha = function(vel, to) {  
this.vel = vel;  
this.to = to;  
this.alpha\_init = this.\_alpha;  
this.onEnterFrame = function() {  
updateAfterEvent();  
if (this.to != undefined && this.vel != undefined) {  
if (this.to\>this.alpha\_init) {  
if (this.\_alpha\<=100) {  
this.\_alpha += this.vel;  
} else {  
this.onEnterFrame = null;  
}  
} else {  
if (this.\_alpha\>this.to) {  
this.\_alpha -= this.vel;  
} else {  
this.onEnterFrame = null;  
}  
}  
} else {  
}  
};  
};

**On a keyframe on a layer below it, I have Todd’s code, slightly modified to load my XML file for a given category:**

/_**/  
/ Crossfading slide show /  
/ Author: Todd Dominey /  
/ [http://whatdoiknow.org](http://whatdoiknow.org)/  
/ [http://domineydesign.com](http://domineydesign.com) /  
/**_/

// set random # variables - each must be 0 for first ‘while’ loop below  
var randomNum = 0;  
var randomNumLast = 0;

// parent container  
var container\_mc = this.createEmptyMovieClip(“container”,0);  
// movie clip containers  
container\_mc.createEmptyMovieClip(“loader1\_mc”,2);  
container\_mc.createEmptyMovieClip(“loader2\_mc”,1);

// preload watcher  
var delme = this.createEmptyMovieClip(“watcher\_mc”,100);

// load xml  
images\_xml = new XML();  
images\_xml.ignoreWhite=true;  
images\_xml.onLoad = parse;  
images\_xml.load(“manufacturers.xml”);

function parse(success) {  
if (success) {  
imageArray = new Array();  
var root = this.firstChild;  
\_global.numPause = Number(this.firstChild.attributes.timer \* 1000);  
\_global.order = this.firstChild.attributes.order;  
\_global.looping = this.firstChild.attributes.looping;  
\_global.fadetime = Number(this.firstChild.attributes.fadetime);  
\_global.xpos = Number(this.firstChild.attributes.xpos);  
\_global.ypos = Number(this.firstChild.attributes.ypos);  
var imageNode = root.lastChild;  
var s=0;  
while (imageNode.nodeName != null) {  
imageData = new Object;  
imageData.path = imageNode.attributes.path;  
imageArray[s]=imageData;  
imageNode = imageNode.previousSibling;  
s++;  
}  
// place parent container  
container\_mc.\_x = \_global.xpos;  
container\_mc.\_y = \_global.ypos;  
// parse array  
imageArray.reverse();  
imageGen(imageArray);  
} else {  
trace(‘problem’);  
}  
}

// depth swapping  
function swapPlace(clip,num) {  
eval(clip).swapDepths(eval(“container\_mc.loader”+num+"\_mc"));  
}

function loadImages(data,num) {  
if (i==undefined || i == 2) {  
i=2;  
createLoader(i,data,num);  
i=1;  
} else if (i==1) {  
createLoader(i,data,num);  
i=2;  
}  
}  
function createLoader(i,data,num) {  
thisLoader=eval(“container\_mc.loader”+i+"\_mc");  
thisLoader.\_alpha=0;  
thisLoader.loadMovie(data[num].path);  
watcher\_mc.onEnterFrame=function () {  
var picLoaded = thisLoader.getBytesLoaded();  
var picBytes = thisLoader.getBytesTotal();  
if (isNaN(picBytes) || picBytes \< 4) {  
return;  
}  
if (picLoaded / picBytes \>= 1) {  
swapPlace(“container\_mc.loader2\_mc”,1);  
thisLoader.alpha(\_global.fadeTime,100);  
timerInterval = setInterval(imageGen,\_global.numPause,data);  
delete this.onEnterFrame;  
}  
}  
}  
function imageGen(data) {  
// random, or sequential?  
if (\_global.order==“random”) {  
// choose random # between 0 and total number of images  
while (randomNum == randomNumLast) {  
randomNum = Math.floor(Math.random() \* data.length);  
trace(randomNum);  
}  
loadImages(data,randomNum);  
randomNumLast = randomNum;  
} else if (\_global.order==“sequential”) {  
// start at 0, increment to total number of images, then drop back to zero when done  
if (p==undefined || p==data.length && \_global.looping==“yes”) { p=0; } else { break; }  
loadImages(data,p);  
p++;  
} else {  
trace (“order attribute in xml isn’t correct - must specify either ‘random’ or ‘sequential’”);  
}  
clearInterval(timerInterval);  
}  
stop();

**Finally, when the movieclip is hiding itself (when the user clicks another category, I have a frame with this code:**

\_level0.c\_manufacturers.container\_mc.removeMovieClip();

**Without this line of code, the slideshows won’t play the second time you come back to a category. With it, they play, but don’t crossfade. I’d really appreciate any help, this problem has been bothering me for days.**

**Thanks very much,**

**mfrederickson**
