XML Photo Gallery slideshow

Hi Guys,

I’m using the XML photo gallery that is on KIRUPA tutorial, but i need to have the slideshow AND the prev and nex button, so i edited a bit, join in the 2 different codes as told in the tutorial.

This is the code:

delay = 5000; 
//----------------------- 
function loadXML(loaded) { 
if (loaded) { 
xmlNode = this.firstChild; 
image = []; 
description = []; 
total = xmlNode.childNodes.length; 
for (i=0; i<total; i++) { 
image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue; 
description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue;
} 
firstImage();
} else { 
content = "file not loaded!";
}
} 
xmlData = new XML(); 
xmlData.ignoreWhite = true; 
xmlData.onLoad = loadXML; 
xmlData.load("images.xml"); 
///////////////////////////////////// 
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) { 
prevImage();
} else if (Key.getCode() == Key.RIGHT) { 
nextImage();
}
}; 
Key.addListener(listen);
previous_btn.onRelease = function() {
    prevImage();
};
next_btn.onRelease = function() {
    nextImage();
};
p = 0; 
this.onEnterFrame = function() { 
filesize = picture.getBytesTotal(); 
loaded = picture.getBytesLoaded(); 
preloader._visible = true; 
if (loaded != filesize) { 
preloader.preload_bar._xscale = 100*loaded/filesize;
} else { 
preloader._visible = false; 
if (picture._alpha<100) { 
picture._alpha += 10;
}
}
}; 
function nextImage() { 
if (p<(total-1)) { 
p++; 
if (loaded == filesize) { 
picture._alpha = 0; 
picture.loadMovie(image[p], 1); 
desc_txt.text = description[p]; 
picture_num(); 
slideshow();
}
}
} 
function prevImage() { 
if (p>0) { 
p--; 
picture._alpha = 0; 
picture.loadMovie(image[p], 1); 
desc_txt.text = description[p]; 
picture_num();
}
} 
function firstImage() { 
if (loaded == filesize) { 
picture._alpha = 0; 
picture.loadMovie(image[0], 1); 
desc_txt.text = description[0]; 
picture_num(); 
slideshow();
}
} 
function picture_num() { 
current_pos = p+1; 
pos_txt.text = current_pos+" / "+total;
} 
function slideshow() { 
myInterval = setInterval(pause_slideshow, delay); 
function pause_slideshow() { 
clearInterval(myInterval); 
if (p == (total-1)) { 
p = 0; 
firstImage();
} else { 
nextImage();
}
}
}


Now, it works, but if i click next next next several times and quick, it seems that the delay messed up and start just keep changing pic really quickly.

Somebody has any clue?

Thanks.

Mara