views:

158

answers:

1

I have a Flash slideshow that plays SWFs listed in an XML file. I would like to have the upcoming SWF load while the current one displays. I've tried all sorts of combinations of LoadMovie and LoadMovieNum, including creating an empty movie clip, but there's something I'm just not getting.

Right now, after making the first round through all the files, it transitions smoothly from slide to slide, but I'd like for it to preload so that it transitions without the "Loading..." screen the first time around.

It can be viewed here: slideshow

Where should I put the LoadMovie line to load the next file (image[p+1]), and how should it look?

function loadXML(loaded) { 
if (loaded) { 
    xmlNode = this.firstChild; 
    image = []; 
    description = []; 
    total = xmlNode.childNodes.length; 
    for (i=0; i<total; i++) { 
    image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; 
    description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; 
} 
firstImage(); 
} else {
    content = "file not loaded!"; 
} 
}

xmlData = new XML(); 
xmlData.ignoreWhite = true; 
xmlData.onLoad = loadXML; 
xmlData.load("xmlfile.xml");

///////////////////////////////////// 

back_btn.onRelease = function ()
{
backImage();
};

next_btn.onRelease = function ()
{
nextImage();
};

p = 0;

function nextImage() {
if (p<(total-1)) {
    p++;
    trace(this);
    _root.mc_loadfile.loadMovie (image[p]);
    _root.movie_name.text = image[p];
    next_btn._visible = true;
    back_btn._visible = true;
    if (getBytesLoaded() == getBytesTotal())
        slideshow();
}

else if (p == (total-1)) {
    p = 0;
    firstImage();
}
}

function backImage() {
clearInterval(myInterval);
if (p>0) {
    --p;
    _root.mc_loadfile.loadMovie (image[p]);
    _root.movie_name.text = image[p];
    next_btn._visible = true;
    if (p != 0) {
        back_btn._visible = true;
    }
    else {
        back_btn._visible = false;
    }
    slideshow();
}
}

I'd appreciate any help.

+1  A: 

You can do it with the MovieClipLoader class. A brief tutorial can be found at actionscript.org, or you can check the docs on it.

Alex Jillard
Thanks, I'll check that out right now.
pthesis
Thanks again. I found what I needed in the movieClipLoader class like you suggested.
pthesis
Excellent. Whenever you're loading an external swf or image, the MovieClipLoader is probably your best bet. You get a little more control with it than any other way.
Alex Jillard