2010-04-21 54 views
1

我有一個Flash幻燈片,播放列在XML文件中的SWF文件。我想在即將顯示的SWF中加載即將到來的SWF。我嘗試了各種各樣的LoadMovieLoadMovieNum的組合,包括創建一個空的影片剪輯,但有一些我只是沒有得到。Flash:如何預先加載即將播放的SWF,同時播放當前播放的內容

現在,在完成所有文件的第一輪之後,它可以平滑地從幻燈片切換到幻燈片,但我希望它能夠預加載,以便在第一次沒有「加載...」屏幕時進行轉換周圍。

可以看這裏:slideshow

我應該在哪裏把LoadMovie線加載下一個文件(image[p+1]),以及應該如何看待?

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

我很感激任何幫助。

回答

1

你可以用MovieClipLoader類來做到這一點。在actionscript.org上可以找到一個簡短的tutorial,或者你可以檢查它上面的docs

+0

謝謝,我現在檢查一下。 – pthesis 2010-04-21 16:12:27

+0

再次感謝。我在你的建議中找到了我所需要的movieClipLoader類。 – pthesis 2010-04-22 00:25:47

+0

非常好。無論何時加載外部swf或圖像,MovieClipLoader可能都是您最好的選擇。與其他任何方式相比,你對它有更多的控制。 – 2010-04-22 16:07:03