PDA

Просмотр полной версии : Как последовательно загрузить несколько swf во внешний прелоадер


Chen Ancor
04.07.2007, 13:44
Здравствуйте. У меня такая проблема: есть внешний прелоадер, в нем 2 пустых контенера, в которые должны грузиться 2 ролика. Причем первый ролик должен загрузившись сразу начать играть, а второй должен начать грузиться после загрузки первого и начать проигрываться после окончания проигрывания первого. С загрузкой одного ролика или 2х одновременно я разобрался, а вот с последовательной не могу.
Вот мой прелоадер:

var loader_mcl = new MovieClipLoader();
loader_mcl.addListener(this);

loader_mcl.loadClip("load/intro3.swf", container_mc);

onLoadStart = function(target){
attachMovie("preloader anim", "preloader_mc", 500, {_x:500, _y:310});

}
onLoadProgress = function(target, bytes_loaded, bytes_total){
target.stop();
target._visible = false;
preloader_mc.value = bytes_loaded/bytes_total;
}
onLoadComplete = function(target){

target.play();
target._visible = true;
preloader_mc.removeMovieClip();


}
onLoadError = function(target, error_code){
preloader_mc.removeMovieClip();
trace(error_code);
}


Пожалуйста подскажите как это сделать

Что такое хорошо?
04.07.2007, 16:04
1. Есть вероятность того, что второй мувик не успеет подгрузиться к моменту окончания воспроизведения первого мувика.
2. Если по-быстренькому, то просто повтори аналогичный код прелоадера и для второго контейнера.

Chen Ancor
04.07.2007, 16:14
Спасиб за совет я тож думаю что может возникнуть такая ситуация с мувиками когда один уже проиграл а второй еще не загрузился.
По поводу повторения кода пробовал - при этом оба ролика грузятся одновременно, а не один за другим. Мне надо как то узнать момент окончания загрузки первого и только потом грузить второй, а за тем узнать момент когда первый проиграет и запустить второй ролик и как узнать эти моменты?

Что такое хорошо?
04.07.2007, 16:43
момент окончания загрузки первого наступает в onLoadInit


var mclListener:Object = new Object();
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", image_mc);

mclListener.onLoadStart = function(target_mc:MovieClip) {
trace("НАЧАЛО ЗАГРУЗКИ");
};
mclListener.onLoadComplete = function(target_mc:MovieClip) {
trace("ЗАГРУЖЕНО");
};
mclListener.onLoadInit = function(target_mc:MovieClip) {
trace("ИНИТИАЛИЗИРОВАНО");
// ТУТ ВЫЗЫВАЙ ЗАГРУЗКУ ВТОРОГО МУВИКА
};

Chen Ancor
04.07.2007, 18:28
ок спасибо буду пробовать - как я понял надо в функции mclListener.onLoadInit надо заново создать новый объект класса MovieClipLoader, новый листенер для загрузчика. Правильно?

Chen Ancor
04.07.2007, 23:30
Большое спасибо Что такое хорошо? с последовательной загрузкой разобрался :) . Но вот с началом воспроизведения второго ролика после окончания предыдущего не могу разобраться

BigDan
04.07.2007, 23:32
в onEnterFrame проверяешь _currentframe == _totalframes
onEnterFrame = function(){
if(mc1._currentframe == mc1._totalframes){
trace("first ended");
delete this.onEnterFrame;
}
}

Chen Ancor
05.07.2007, 00:00
Большое спасибо BigDan Все заработало!:yahoo: Всем спасибо тему можно закрывать:)