PDA

Просмотр полной версии : Как сделать так, чтобы картинки подгружались по очереди


Кричали дети!
28.10.2008, 22:46
Подскажите пожалуйста, как сделать так, чтобы картинки подгружались по очереди, с определённым интервалом, из внешнего файла.
Есть код с циклом загрузки:

for (var i=1; i<=10; i++) {
this.createEmptyMovieClip("clip" + i, i);
this["clip" + i].loadMovie("file/pic"+i+".jpg");}

Думаю нужно добавить функцию, и после как-то setInterval, а как, не знаю, как ни пробовал.. Подскажите, плииз.

sergsa
28.10.2008, 23:11
i=1
timer=0
this.onEnterFrame=function(){
if(i<11&&timer>27){
this.createEmptyMovieClip("clip" + i, i);
this["clip" + i].loadMovie("file/pic"+i+".jpg")
i++
timer=0
}
else if(i>10){delete this.onEnterFrame}
timer++
}

Кричали дети!
28.10.2008, 23:51
Спасибо большое, ты мне очень помог. Я новичёк, как ты заметил, и хочу разобраться..
Вот что делает и как влияет на код переменная timer?

sergsa
29.10.2008, 00:05
this.onEnterFrame=function(){

} -эта ф-ция выполняется сколько-то раз в секунду(зависит от Frame Rate) т.е. задержка очень маленькая
timer для того, что б задержка была больше

Кричали дети!
29.10.2008, 00:12
Спасибо, понял.

Кричали дети!
29.10.2008, 00:35
Блин, прости, я совсем баран.. Как это зациклить?

Mnilionic
29.10.2008, 01:30
var mcl = new MovieClipLoader();
var i = 1;
function load_img(){
if( i == 11){ clearInterval(interval); return; }

var mc = this.createEmptyMovieClip("clip" + i, i);
mcl.loadClip("file/pic"+i+".jpg", mc);
i++;
}
var interval = setInterval(load_img, 2000);

Кричали дети!
29.10.2008, 02:15
У меня он что-то не работает..

Mnilionic
29.10.2008, 02:36
сорри, внутри функции this не определён.
можно так:

var mcl = new MovieClipLoader();

var i = 1;
function load_img(box){
if( i == 11){ clearInterval(interval); return; }

var mc = box.createEmptyMovieClip('clip' + i, i);
mc._x = i * 20;
mcl.loadClip('file/pic'+ i + '.jpg', mc);
i++;
}
var interval = setInterval(load_img, 2000, this);

Кричали дети!
29.10.2008, 02:57
Ага, работает, круто. А как можно это зациклить? С помощью какого оператора лучше, или вовсе можно как-нибудь без него?

Mnilionic
29.10.2008, 16:11
что значит 'зациклить' и для чего?

джонатан
29.10.2008, 16:33
Что то непонятное для меня вы мутите... Помоему проще вот так:


var mcl = new MovieClipLoader();
var mclLst = new Object();
var i = 1;

mclLst.onLoadInit - function() {
i++;
if(i <=10) {
LoadImg();
} else {
mcl.removeListener(mclLst);
delete mclLst;
delete mcl;
}
}

function LoadImg() {
var mc = box.createEmptyMovieClip('clip' + i, i);
mc._x = i * 20;
mclLst.loadClip('file/pic'+ i + '.jpg', mc);
}

mcl.addListener(mclLst);

LoadImg();

Mnilionic
29.10.2008, 16:44
джонатан, ну во-первых "проще" я бы это не назвал, во-вторых автору нужно грузить через _фиксированный_ интервал времени. :)