# Help needed modifying kirupa's xml photo slideshow

**URL:** <https://forum.kirupa.com/t/help-needed-modifying-kirupas-xml-photo-slideshow/292732>\
**Category:** flash\
**Created:** [July 18, 2009, 3:25am UTC](https://forum.kirupa.com/t/help-needed-modifying-kirupas-xml-photo-slideshow/292732 "2009-07-18T03:25:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![paranoidude](https://avatars.discourse-cdn.com/v4/letter/p/6de8d8/32.png) [@paranoidude](https://forum.kirupa.com/u/paranoidude)\
**Post date:** [July 18, 2009, 3:25am UTC](https://forum.kirupa.com/t/help-needed-modifying-kirupas-xml-photo-slideshow/292732/1 "2009-07-18T03:25:33Z")

</div>

Hi everyone,

I’m new to xml and not very experienced with Flash so I was wondering if you could help me out a bit. I’m trying to modify Kirupa’s xml photo slideshow by adding an extra text field, which if I understand correctly gives each element 3 children (image+text1+text2) instead of 2 (image+text). Even though I’ve added the third child correctly in the xml, I can’t seem to get it to work at all. Here is what I did with the actionscript:

delay = 10000;  
//-----------------------  
function loadXML(loaded) {

if (loaded) {

xmlNode = this.firstChild;  
image = [];  
description = [];  
[COLOR=Red]subject = [];[/COLOR]  
total = xmlNode.childNodes.length;  
for (i=0; i\<total; i++) {

image\* = xmlNode.childNodes\*.childNodes[0].firstChild.nodeValue;  
description = xmlNode.childNodes .childNodes[1].firstChild.nodeValue;  
[COLOR=Red]subject = xmlNode.childNodes.childNodes[2].firstChild.nodeValue;[/COLOR]

}  
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();

}

};  
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];  
[COLOR=Red]sub\_txt.text = subject[p];[/COLOR]  
picture\_num();  
slideshow();

}

}

}  
function prevImage() {

if (p\>0) {

p–;  
picture.\_alpha = 0;  
picture.loadMovie(image[p], 1);  
desc\_txt.text = description[p];  
[COLOR=Red]sub\_txt.text = subject[p];[/COLOR]  
picture\_num();

}

}  
function firstImage() {

if (loaded == filesize) {

picture.\_alpha = 0;  
picture.loadMovie(image[0], 1);  
desc\_txt.text = description[0];  
[COLOR=Red]sub\_txt.text = subject[0];[/COLOR]  
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();

}

}

}

I’ve highlighted the parts I’ve added to the code provided by kirupa’s tutorial. sub\_text is the instance name I give to the new text field in Flash. If anyone can take a look and see what I did wrong I would greatly appreciate it. Thanks in advance! :emb:
