Flash XML Play/Pause Button?
Hi,
I have a flash xml slide show. I need to create a play pause toggle button that will stop the xml slide show and start it again.
Does anyone know how I can do this?
Here is the actionscript:
Code:
function loadXML(loaded)
{
if (loaded)
{
xmlNode = this.firstChild;
image = [];
caption = [];
total = xmlNode.childNodes.length;
for (i = 0; i < total; i++)
{
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
caption[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
} // end of for
firstImage1();
}
else
{
content = "file not loaded!";
} // end else if
} // End of the function
function nextImage()
{
if (p < total - 1)
{
++p;
if (loaded == filesize)
{
picture._alpha = 0;
picture.loadMovie("photos/" + image[p], 1);
caption_txt.text = caption[p];
} // end if
} // end if
} // End of the function
function nextImage1()
{
if (p < total - 1)
{
++p;
if (loaded == filesize)
{
picture._alpha = 0;
picture.loadMovie("photos/" + image[p], 1);
caption_txt.text = caption[p];
slideshow();
} // end if
} // end if
} // End of the function
function prevImage()
{
if (p > 0)
{
--p;
picture._alpha = 0;
picture.loadMovie("photos/" + image[p], 1);
caption_txt.text = caption[p];
} // end if
} // End of the function
function firstImage()
{
if (loaded == filesize)
{
picture._alpha = 0;
picture.loadMovie("photos/" + image[0], 1);
caption_txt.text = caption[0];
} // end if
} // End of the function
function firstImage1()
{
if (loaded == filesize)
{
picture._alpha = 0;
picture.loadMovie("photos/" + image[0], 1);
caption_txt.text = caption[0];
slideshow();
} // end if
} // End of the function
function slideshow()
{
function pause_slideshow()
{
clearInterval(myInterval);
if (p == total - 1)
{
p = 0;
firstImage1();
}
else
{
nextImage1();
} // end else if
} // End of the function
myInterval = setInterval(pause_slideshow, 4000);
} // End of the function
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("photos.xml");
listen = new Object();
listen.onKeyDown = function ()
{
if (Key.getCode() == 37)
{
prevImage();
}
else if (Key.getCode() == 39)
{
nextImage();
} // end else if
};
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 = picture._alpha + 10;
} // end if
} // end else if
};
////////////Try the Pause and Play Toggle button down here ////////////////////
/*var playState:Boolean=true;
btn_mc.onRollOver=function(){
this.gotoAndStop(2);
}
btn_mc.onRollOut=function(){
this.gotoAndStop(1);
}
*/
/////////this is where it goes to stop and start//////////////
btn_mc.onRelease=function(){
this.gotoAndStop(1);
if(playState){
playState=false;
this.btnTxt_mc.gotoAndStop(2);
this._parent.stop();
}else{
playState=true;
this.btnTxt_mc.gotoAndStop(1);
this._parent.play();
}
}
Maybe you can adapt this to what you are trying to do...
Code:
//
var myInterval = null;
var playState:Boolean = true;
var image = new Array();
var caption = new Array();
var total = 0;
var p = 0;
//
function loadXML(loaded) {
if (loaded) {
var xmlNode = this.firstChild;
image = [];
caption = [];
total = xmlNode.childNodes.length;
for (i = 0; i < total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
caption[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
}
p = total;
slideshow();
} else {
content = "file not loaded!";
}
delete xmlNode;
}
function doLoading() {
var filesize = picture.getBytesTotal();
var 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 = picture._alpha + 10;
} else {
delete this.onEnterFrame;
}
}
}
function showPic() {
caption_txt.text = caption[p];
picture._alpha = 0;
picture.loadMovie("photos/" + image[p], 1);
this.onEnterFrame = doLoading;
}
function nextImage() {
p = (p < total - 1) ? p + 1 : p;
showPic(p);
}
function prevImage() {
p = (p > 0) ? p - 1 : p;
showPic(p);
}
function slideshow() {
clearInterval(myInterval);
p = (++p >= total) ? 0 : p;
showPic(p);
myInterval = setInterval(slideshow, 4000);
}
//
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("photos.xml");
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == 37) {
prevImage();
} else if (Key.getCode() == 39) {
nextImage();
}
};
Key.addListener(listen);
previous_btn.onRelease = function() {
prevImage();
};
next_btn.onRelease = function() {
nextImage();
};
btn_mc.onRelease = function() {
clearInterval(myInterval);
playState = !playState;
if (playState) {
slideshow();
}
};