PDA

Просмотр полной версии : прелоадер с послед. аттачем клипов. Не получается у меня...


mr.zed
25.09.2007, 16:31
тут в архивах нашел
Один из приемов.
Прелоадер ставим на первый кадр, через пять кадров, за пределы сцены ставь мувики которые хочешь атачить(их юзать не будешь, слейдующий фрейм должен быть пустым, чтоб они удалились.
После чего на десятом кадре начинаешь играть свой сайт.


Но при этом я так понимаю, что нужно снять галочку с "Export in first frame"..
а если в клипе (symbol) используется картинка, которая тоже в symbol?

Видел еще вариант: вытащить все мувики на раб. стол и пользовать через дубликате. Но это опять ж гембель если клип в клипе

Читал FAQ, вот нарыл ссылку (http://www.flasher.ru/forum/showthread.php?threadid=48304). Работает, но опятьже: а как с аттачем?
а так ссылки на "нормально" работающий вариант не нашел.... :wacko:
Намекните, пожалуйста на реализацию "нормального" прелоадера.....

Fernando Costa
25.09.2007, 16:36
короче делай лучше внешний прелоадер и не парься, тогда процент загрузки будет отображаться сразу. не забудь поставить lockroot чтобы проблем не было

mr.zed
03.10.2007, 11:25
Вот сделал прелоадер через mc.loadMovie и потом делаю mc.getBytesLoaded()/mc.getBytesTotal(). У меня локально на компе играет. По крайней мере быстренько так вижу циферку 100% и размеры отображаю (для себя) от getBytes. Вроде все хорошо. Но тут проблема. В нете в тексте прогресса пишет "загрузка: NaN: 0 x 0". Что такое NaN понятно. Первый ноль - это беру от Loaded, второй ноль - это от Total. Но все равно через врямя ролик загружается и начинает играть.


mc._lockroot=true;
mc.loadMovie("index.swf", 0);
percent=0;
loader = function () {
percent = (mc.getBytesLoaded()/mc.getBytesTotal())*100;
pr.text="... "+percent+": "+mc.getBytesLoaded()+" x "+mc.getBytesTotal();
if (mc.getBytesLoaded()>=mc.getBytesTotal()) {
clearInterval(intr);
stop();
}
};
intr = setInterval(loader, 100);

mr.zed
03.10.2007, 12:29
Пришлось немного переделать. Но проигрывание загружаемого клипа начинается еще ДО окончания его загрузки.


var my_mcl:MovieClipLoader=new MovieClipLoader();
var my_obj:Object=new Object();
my_mcl.loadClip("index.swf",mc);
my_obj.onLoadStart=function(clip){
pr.text="Загрузка началась";
}
my_obj.onLoadError=function(clip,str){
pr.text="Ошибка"+str;
}
my_obj.onLoadProgress=function(clip,bytesLoaded,totalBytes){
pr.text=Math.round(bytesLoaded/totalBytes*100)+"%";
}
my_obj.onLoadComplete=function(clip){
pr.text="Загрузка завершина";
delete my_obj;
delete my_mcl;
}
my_mcl.addListener(my_obj);

Fernando Costa
03.10.2007, 13:18
делай в этом кадре stop(); а в событии onLoadComplete ставь play();

mr.zed
03.10.2007, 13:26
Я тоже так думал..
Но делать стоп где? Я пробовал в первом кадре mc сделать stop(), а после загрузки onLoadComplete сделать mc.gotoAndPlay(2); Так? Не получается. Просто не играет mc.

Спасибо, разобрался. Просто во втором кадре mc был лишний стоп (когда я копировал, то не убрал). У меня же прелоадер анимированный..

Futury
03.10.2007, 13:54
mr.zed А можете исходник выложить.......у меня такая же проблема........ни как не могу разобраться.....

mr.zed
03.10.2007, 14:10
только в подгружаемом клипе на 1й кадр ставишь stop();. Все, что там нужно идет со второго кадра, как обычно. Загрузчик вот. Только он такой большой в распакованном виде, потому что там были картинки.. С анимацией у меня.. Я их удалил, но размер остался, парадокс? :victory:

Futury
03.10.2007, 14:15
mr.zed Спасиба!

Wolsh
03.10.2007, 14:44
>>Только он такой большой в распакованном виде, потому что там были картинки.. С анимацией у меня.. Я их удалил, но размер остался, парадокс?

Нет, не парадокс. Save and compact спасет тебя.

mr.zed
03.10.2007, 15:03
Save and compact спасет тебя.
Ухты! Спасибо! стало 27 кБ. а было 2.8 метра