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

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

ilich (ilich@atrus.ru)

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


В нашем родном "C - Loader" надо сделать следующую кадровую конструкцию. Самый верхний слой должен состоять из трех пустых ключевых кадров для ActionScript. Первый из них нужен для некоторых приготовлений к загрузке клипа и, соответственно, к действию прелоадера. Пиши в нем:

mark._visible=false;

status._visible=false;

target._visible=false;

target._x=0;

target._y=0;

mark._x=10;

status._x=10;

mark._y=50;

status._y=60;

stop ();

Здесь мы ставим все наши три мувика на нужные места и делаем их невидимыми. Это нужно для того, чтобы еще до нажатия кнопки Х прелоадер не был виден. И после этих нехитрых пертурбаций мы стопим процесс. Как ты помнишь, переход ко второму кадру произойдет при нажатии на заветную пимпу. Кстати, о заветной пимпе. Пихай ее во второй слой в первый кадр. Во втором и в третьем ее быть не должно! Ибо это и есть наше предохранение от действия твоих шаловливых ручек во время загрузки. Типа того, если все кнопочки во время очередной загрузки от тебя спрятать, то и сотворить чего-нибудь плохого ты не сможешь.

Второй и третий кадры по функциональности идентичны кадрам главного прелоадера. Выглядят они так:

Кадр 2

x=target.getBytesTotal ();

y=target.getBytesLoaded ();

status._width=int (y/x);

if (x==y) {

status._visible=false;

mark._visible=false;

target._visible=true;

stop ();

target.gotoAndPlay (1);

}

Кадр 3

x=target.getBytesTotal ();

y=target.getBytesLoaded ();

status._width=int (y/x);

if (x==y) {

status._visible=false;

mark._visible=false;

target._visible=true;

stop ();

target.gotoAndPlay (1);

}

gotoAndPlay (2);

Прелоадер фурычит, как и основной, только по окончании загрузки он не переходит к нужному уже загруженному кадру, а просто стопится. При этом он начинает проигрывание свежезагруженного мувика с самого начала. Чего и требовалось достичь.

Кстати, есть способ организации прелоадеров разделов для истинных извращенцев. Состоит он вот в чем. У каждой флешки с отдельным разделом делается свой собственный главный прелоадер. В таком случае твоей основной флешке остается лишь только вызвать их, а прелоадер будет работать внутри самого раздела. Только при таком раскладе следует в качестве целевого мувика для функций "getBytesTotal()"" и "getBytesLoaded()" использовать "this", т.е. текущий клип. Дерзай!

Смотрим на конец

Это еще не все, что нужно знать настоящему реальному флешеру. Давай посмотрим на загрузчики несколько другого формата. Эти, извиняюсь за выражение, прелоадеры на самом деле я бы таковыми не назвал, т.к. они способны на чудо лишь по окончании загрузки. А их действия во время качания никаким образом не зависят от степени выполнения. Такие хренолоадеры чуваки вставляют в паги, где присутствует обращение к переменным из внешних файлов, типа XML и TXT и др. Начнем, пожалуй, с текстовиков.

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