PDA

Просмотр полной версии : Загрузка нескольких изображении друг на друга


iBandicoot
11.11.2007, 23:02
Помогите разобраться. Почему вторая чать кода (if==2....) не работает?
Нужно чтобы после полной загрузки одной картинки загружалась вторая, третья и т.д.

//Создаем массив путей
var images_path = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"];
var a = 1;
var b = 0;
var bx = background1._width;
var by = background1._height;
//////////////////////////////////////
if (a == 1) {
var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_obj:Object = new Object();
my_mcl.loadClip(images_path[0], background1);
my_obj.onLoadStart = function(background1) {
status_tf.text = "Загрузка началась";
};
my_obj.onLoadProgress = function(background1, bytesLoaded, totalBytes) {
progres_tf.text = Math.round(bytesLoaded/totalBytes*100)+"%";
};
my_obj.onLoadComplete = function(background1) {
my_obj.onLoadInit = function(target_mc:MovieClip):Void {
if (target_mc._width>bx) {
target_mc._width = bx;
}
if (target_mc._height>by) {
target_mc._height = by;
}
target_mc._x = bx/2-target_mc._width/2;
target_mc._y = by/2-target_mc._height/2;
a++;
trace(a);
};
status_tf.text = "";
delete my_obj;
delete my_mcl;
};
my_mcl.addListener(my_obj);
}
///////////////////////
if (a == 2) {
trace(a);
my_mcl.loadClip(images_path[1], background1);
my_obj.onLoadStart = function(background1) {
status_tf.text = "Загрузка началась";
};
my_obj.onLoadProgress = function(background1, bytesLoaded, totalBytes) {
progres_tf.text = Math.round(bytesLoaded/totalBytes*100)+"%";
};
my_obj.onLoadComplete = function(background1) {
my_obj.onLoadInit = function(target_mc:MovieClip):Void {
if (target_mc._width>bx) {
target_mc._width = bx;
}
if (target_mc._height>by) {
target_mc._height = by;
}
target_mc._x = bx/2-target_mc._width/2;
target_mc._y = by/2-target_mc._height/2;
a++;
trace(a);
};
status_tf.text = "Загрузка завершина";
delete my_obj;
delete my_mcl;
};
my_mcl.addListener(my_obj1);
}

iNils
11.11.2007, 23:06
if (a == 2) срабатывает раньше, чем началась загрузка первой картинки, так код выполняется асинхроно загрузке. Поэтому вторую картинку надо грузить после того, как сработает my_obj.onLoadInit

iBandicoot
11.11.2007, 23:12
Спасибо. А как это реализовать, чтобы код прошелся после my_obj.onLoadInit

:)))
SetInteraval пускать каждую секунду вторую часть?
Только оно не работает.

Спасибо. Нашел решение

CorC
12.11.2007, 10:22
надо писать этот if в onLoadComplete'e