PDA

Просмотр полной версии : верификация дочерней флешки


aaum
22.06.2006, 21:01
Добрый день. Поиск еще больше запутал меня, неопытного :) Понимаю, и проблема то смешная, однако заняла у меня приличное время... итак, в "голову", где установлен общий прелоадер, подружаются дочерние swf в контейнер plassen :stop();
this.onEnterFrame = function() {
if (vara != naa) {
plassen.unloadMovie;
plassen.loadMovie((("SA"+vara)+".swf"));
naa = vara;
} else {
j = plassen.getBytesLoaded();
e = plassen.getBytesTotal();
if (j == e) {
ja = true;
} else {
_root.ladder.gotoAndStop(Math.round(j/e*100));
ja = false;
}
}
};
а в руте подгружаемой: if (ja = true) {
gotoAndPlay(2)};
stop();
то есть смысл в том, чтобы начать показ ролика лишь в случае полной его загрузки. Здесь я нарочно потер идентификаторы уровней и оставил одну суть... и еще, по "критериям изящного" - что можно было бы придумать вместо приведенного выше способа?

Спасибо, дорогие!

RandomUser
22.06.2006, 21:48
if (ja == true) {
gotoAndPlay(2)};
stop();

P.S.Читай в хелпе про MovieClipLoader

aaum
22.06.2006, 23:12
касательно первого варианта: воспользоваться _global является выходом? Если да, то каким образом это можно осущесвить?

относительно второго способа, с использованием MovieClipLoader - я никогда его не применял, возможно - к сожалению, тем более что он актуален лишь с 7-й версии...

Techmaker
23.06.2006, 01:10
во первых: в твоём коде нашёл ещё одну ошибку синтаксического плана =)
plassen.unloadMovie;
функции(методы) запускаются при помощи ()
т.е. надо писать так
plassen.unloadMovie();

касательно первого варианта
мы грузим swf внутрь мувиклипа plassen, по этому plassen - будет рутом swf
т.е. ja надо записывать внутри plassen
plassen.ja = true;

вот я переделал твой код прелоадера(сделал более правильным по логике), изучи:
this.onEnterFrame = function() {
if (naa != vara) {
naa = vara;
plassen.loadMovie(("SA"+vara)+".swf");
loadedflag=false;
}
if(!loadedflag && naa!=undefined){ // если не загружено и есть что грузить
lod = plassen.getBytesLoaded();
tot = plassen.getBytesTotal();
if(tot>4 && lod*tot>0){ // старт загрузки
_root.ladder.gotoAndStop(Math.round(lod/tot*100));
if (lod == tot) { // конец загрузки
loadedflag=true;
plassen.gotoAndPlay(2);
}
}
}
};
а в руте подгружаемой:
stop();

aaum
23.06.2006, 01:43
ура!!! выход найден!! кому интересно: else {
j = plassen.getBytesLoaded();
e = plassen.getBytesTotal();
if (j == e) {
plassen.gotoAndPlay(2);
} else {
_root.ladder.gotoAndStop(Math.round(j/e*100));
}
}
};
и все!! а в подружаемом ролике в первый кадр пишем stop (); а со второго начинается ролик.

ЗЫ: :quiet: - это я, когда я чем то доволен! и отдельное спасибо techmaker, сообщение которого я не заметил вовремя