Вход

Просмотр полной версии : опять прелоадер


Rotator
27.07.2002, 05:20
Понимаю, что сабжевый вопрос задавался на форуме не раз и со-нно топиков по этому поводу немерянно, но решить проблему они мне не помогли. А проблема следующая - есть внешний прелоадер, который грузит в себя основной клип:
frame№10:
onClipEvent (load) {
loadMovieNum ("mainclip.swf", 1);
_root.loader.bar._alpha = 0;
}
onClipEvent (enterFrame) {
totalC = _level1.getBytesTotal();
loadedC = _level1.getBytesLoaded();
percent = loadedC/totalC*100;
round = Math.floor(percent);
_root.loader.bar._yscale = percent;
_root.loader.bar._alpha = 100;
if (totalC==loadedC) {
_root.gotoAndPlay(20);
}
}
После наступления условия totalC==loadedC происходит переход на 20-й кадр (чтобы избавиться от мувика-прелоадера, находящегося в 10-м кадре - лучше способа не нашел :( ), где запускается подгруженный mainclip. В первом кадре mainclip находится кнопка, осуществляющая переход на другие кадры mainclip. И баг состоит в том, что эта кнопка появляется на сцене с прелоадером, когда загрузка осуществлена примерно на 50%, и так и остается до окончания загрузки. В общем подскажите, plz, как побороть этот баг с преждевременным появлением кнопки.

Darina
27.07.2002, 10:38
if (totalC==loadedC) and (totalC>0)
вот такое должно быть условие!

Rotator
27.07.2002, 14:18
Не катит. Percent==100, кстати, тоже. Видать, проблемка в чем-то другом...

Nox Noctis
27.07.2002, 14:23
все просто - в onClipEvent(load) поставь _level1._visible = false;
а после перехода в кадр 20 поставь _level1._visible = true;

и Дарина дело говорит - нужно проверять определился ли размер и пришло ли что-нить уже... а то вначале можно получить 0 == 0 :)

Darina
27.07.2002, 16:05
Понятно, что
percent = loadedC/totalC*100 = (0/0)*100=1*100=100 :D

Rotator
27.07.2002, 21:16
_visible поставил, но не пофиксилось. Перестраховка с условием, повторюсь, тоже ничего не дала. Может, если не трудно, посмотрите приаттаченное файло. Иллюстрация косяка для наглядности находится здесь (http://www.rotator.narod.ru/preloader.html) .
2Darina:а в женской логике, оказывается, что-то есть...;)

Nox Noctis
28.07.2002, 02:27
хм... ничего существенного я не правил, но все работает вроде :)

Rotator
28.07.2002, 04:53
Повесил присланный мувик в сеть (http://www.rotator.narod.ru/loader.html) и... чертов enter опять вылетает на сцену во время загрузки :( Если в это время по нему кликнуть - его visible в самом деле переходит в значение false. Правда, после этого загруженный мувик в этом состоянии так и остается. Так что от ентера, очевидно, придется отказаться. Радует только то, что однокадровые клипы грузятся корректно.
Но в любом случае спасибо за участие в решении проблемы.

Nox Noctis
28.07.2002, 05:31
что-то я не понимаю в чем прикол... я ведь тестил тоже в инете !.. и у меня ентер появился когда надо...

Rotator
28.07.2002, 05:56
Сейчас заново экспортнул файл, залил на пагу, почистил кэш и полез тестить - эффект тот же :confused: Просто мистика какая-то...

DUDE
28.07.2002, 16:45
вот лови!!!просто расставить, по другому надо было! нечего не добавлял!

Rotator
28.07.2002, 20:30
Да, _visible = false нужно было в enterFramе воткнуть. Как-то сам об этом начал уже подумывать, и тут твой исходник очень вовремя подоспел в качестве подтверждения задумки ;)
Всем большое спасибо за содействие! :)

DUDE
28.07.2002, 20:55
пжлст!!!!! _level1._visible = true;
во frame потому что иначе не работает!

Nox Noctis
29.07.2002, 16:08
оххх... ну я и лажанулся :))
позор на мою голову :))

естессно визибл ТАК работать не должен :)
— если установить _level1._visible = false; ДО лоадмуви, то после вызова все переменные из левела 1 сотрутся и визибл тоже
— если установить _level1._visible = false; ПОСЛЕ лоадмуви, то это не сработает до тех пор, пока в левел1 что-нить не подгрузится

самое простое решение - поставить _visible = false внутри загружаемого мувика в первом кадре (на онЛоад одного из тамошних клипов)... но можно конечно и в ентерфрейме :)