Flash: как предварительно загрузить предстоящий SWF, пока проигрывается текущий - PullRequest
1 голос
/ 21 апреля 2010

У меня есть слайд-шоу Flash, которое воспроизводит SWF-файлы, перечисленные в XML-файле. Я хотел бы иметь предстоящую загрузку SWF, пока отображается текущая. Я перепробовал все виды комбинаций LoadMovie и LoadMovieNum, включая создание пустого фрагмента ролика, но есть кое-что, чего я просто не получаю.

Прямо сейчас, после первого раунда по всем файлам, он плавно переходит от слайда к слайду, но я бы хотел, чтобы он был предварительно загружен, чтобы он переходил без экрана «Загрузка ...» в первый раз .

Его можно посмотреть здесь: Слайд-шоу

Где поместить строку 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 Ответ

1 голос
/ 21 апреля 2010

Вы можете сделать это с помощью класса MovieClipLoader.Краткое руководство можно найти на сайте actionscript.org, или вы можете проверить документы на нем.

...