Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #27, ФЕВРАЛЬ 2003 г.

FLASH-PRELOADER - до полного загруза...

ilich (ilich@atrus.ru)

Спецвыпуск Xakep, номер #027, стр. 027-038-2


x=_root.getBytesTotal ();

y=_root.getBytesLoaded ();

status._width=int (y/x);

if (x==y) {

_root.gotoAndPlay ("MAIN",1);

}

Во втором то же самое, только в конце добавляется строка "gotoAndPlay(1);".

Вот и все, а ты боялась... Я старался, чтобы код был как можно легче. Итак, объясняю. Фишка "_root.getBytesTotal()" дает общий размер флешки, а "_root.getBytesLoaded()" - размер загруженной части. Далее ширина (т.е. у нас длина) линии устанавливается равной проценту загрузки, и идет, собственно, проверка на окончание закачки.

Сам я всю эту хрень обычно успешно запихиваю в отдельный мувик, а сам этом мувик просто выношу в первый кадр сцены "PRE".

Вопрос мувика

Для тех, кто не в курсе. В индексовую флешку совсем не обязательно пихать инфу всех разделов страницы, которые тебе на ум взбрели. Если ты сделаешь все именно так, то обречешь своих любимых посетителей, зашедших на данную пагу по твоей личной просьбе, на часы ожидания. При халявном инете это, может быть, и не в тягость... Но есть выход лучше. Все разделы творятся в отдельных флешках и грузятся по мере надобности. Я не утверждаю, что это приятно - ожидать по три минуты после каждого клика, но зато при частом обращении к регулярно обновляемой паге не надо каждый раз качать гигазы ненужного хлама. Можно грузить лишь только то, что надо.

Если есть закачка, значит должен быть и прелоадер! Ибо уж если быть красивым, то быть красивым со всех сторон (и даже там!). А инет у нас так устроен, что красота порой поважнее контента бывает. Так что в путь.

С таким прелоадером, освоив создание главного вида оного, разобраться будет и легко, и сложно одновременно. Фишка в том, что, по сути, он устроен так же, но тут есть маленькая загвоздочка. И она даже не столько в самом прелоадере, сколько в организации процесса загрузки посторонних ".swf". Дело в том, что флешки могут грузиться в другие флешки на место мувиков. Новых или существующих - не важно. Важно то, что флешка, которая грузит, во время закачки все еще активна. Занят лишь только один ее клип. Поэтому, чтобы жизнь была вареньем, на время загрузки мувика некоторые функции основной флехи советую отрубать.

Итак, процесс. Создай новый мувик "C - Loader" и тащи в него 2 штуки нашей линии aka "C - PREline" и, соответственно, то, что к одной из них прилагается, - шкалу загрузки. Одну из линий вместе со шкалой, не медля, организуй так же, как и в нашем основном прелоадере, т.е. задай имя линии "status" и поставь ее правильным образом напротив "C - Mark", которому на этот раз тоже надо дать имя - "mark" :). Второй полоске дай имя "target" и забей на нее, оттащив за пределы рабочей области. Сотвори новую кнопку для отдачи команды на загрузку "B - Starter", стартер то бишь. И суй ее туда же, в "C - Loader" на новый слой. Скриптуем кнопень:

on (press) {

loadMovie ("about_me.swf", target);

mark._visible=true;

status._visible=true;

gotoAndPlay (2);

}

Все понятно, как 347*1329 :). Мы по нажатию пимпы грузим "about_me.swf" на место мувика "target", т.е. нашей второй линии. При этом, когда файл загрузится, новый клип заменит старый, переняв некоторые его свойства, такие, как положение на экране, видимость и др. Мы чуваки не глупые и скроем загружаемый мувик до момента его полного появления. Вот сказал-то :)! Сам поразился. Далее мы делаем элементы прелоадера видимыми. Ну и напоследок действием "gotoAndPlay(2)" мы идем играть второй кадр. Вот именно с кадрами нам и осталось поработать.

Назад на стр. 027-038-1  Содержание  Вперед на стр. 027-038-3