2010-04-21 6 views
1

J'ai un diaporama Flash qui lit les fichiers SWF répertoriés dans un fichier XML. Je voudrais avoir la prochaine charge de SWF pendant que l'actuel s'affiche. J'ai essayé toutes sortes de combinaisons de LoadMovie et LoadMovieNum, y compris la création d'un clip vide, mais il y a quelque chose que je ne comprends pas.Flash: comment précharger le fichier SWF à venir pendant que le fichier en cours est lu

Maintenant, après avoir fait le premier tour à travers tous les fichiers, il transite doucement d'une diapositive à l'autre, mais je voudrais qu'il précharge pour qu'il transite sans l'écran "Chargement ..." la première fois autour.

Il peut être consulté ici: slideshow

Où dois-je mettre la ligne LoadMovie pour charger le fichier suivant (image[p+1]), et comment faut-il regarder?

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

J'apprécierais toute aide.

Répondre

1

Vous pouvez le faire avec la classe MovieClipLoader. Un bref tutorial peut être trouvé à actionscript.org, ou vous pouvez vérifier le docs là-dessus.

+0

Merci, je vais vérifier tout de suite. – pthesis

+0

Merci encore. J'ai trouvé ce dont j'avais besoin dans la classe movieClipLoader comme vous l'avez suggéré. – pthesis

+0

Excellent. Chaque fois que vous chargez un swf externe ou une image, le MovieClipLoader est probablement votre meilleur pari. Vous obtenez un peu plus de contrôle avec elle que n'importe quel autre moyen. –

Questions connexes