# Kirupa XML photogallery - how to exit the MC

**URL:** <https://forum.kirupa.com/t/kirupa-xml-photogallery-how-to-exit-the-mc/315119>\
**Category:** flash\
**Created:** [October 18, 2010, 11:14am UTC](https://forum.kirupa.com/t/kirupa-xml-photogallery-how-to-exit-the-mc/315119 "2010-10-18T11:14:24Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![o112](https://avatars.discourse-cdn.com/v4/letter/o/bb73d2/32.png) [@o112](https://forum.kirupa.com/u/o112)\
**Post date:** [October 18, 2010, 11:14am UTC](https://forum.kirupa.com/t/kirupa-xml-photogallery-how-to-exit-the-mc/315119/1 "2010-10-18T11:14:24Z")

</div>

Hi. I have successfully implemented this Photo Gallery Using XML and Flash (by kirupa | 2 September 2004) [http://www.kirupa.com/developer/mx2004/xml\_flash\_photogallery2.htm](http://www.kirupa.com/developer/mx2004/xml_flash_photogallery2.htm).  
What I am trying to do now in my flashmovie is to exit from this gallery keyframe to a previous keyframe visited (same action as Back button in a web browser), using the “next\_btn”. My code edit:  
[COLOR=“Gray”]  
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(“data/059swp/059swp.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();  
};  
[COLOR=“DarkOrchid”]next\_btn.onRelease = function() {  
lastImage();  
};[/COLOR]  
/////////////////////////////////////  
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 += 88;  
}  
}  
};  
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();  
}  
}  
}  
function prevImage() {  
if (p\>0) {  
p–;  
picture.\_alpha = 0;  
picture.loadMovie(image[p], 1);  
desc\_txt.text = description[p];  
picture\_num();  
}  
}  
[COLOR=“DarkOrchid”]function lastImage() {  
if (p = (total - 1)) {  
gotoAndStop(“backFrame”);  
}  
}[/COLOR]  
function firstImage() {  
if (loaded == filesize) {  
picture.\_alpha = 0;  
picture.loadMovie(image[0], 1);  
desc\_txt.text = description[0];  
picture\_num();  
}  
}  
function picture\_num() {  
current\_pos = p+1;  
pos\_txt.text = current\_pos+" / "+total;  
}  
[/COLOR]

Probably not correct, absolute beginner in AS2.0, sorry. Please help.
