Анимированный прелоадер
мая 16, 2009
Сегодня я обращусь к очень старому материалу )
Частенько темы для статей в этом блоге я подчерпываю из общения с людьми в профильных форумах. И вот недавно возник вопрос о том, как сделан один из моих прелоадеров.
Речь идет о незаконченном (к моему сожалению) проекте, который весь построен на покадровой анимации. Некоторые части этого проекта можно видеть у меня в портфолио.
Итак речь идет вот об этих циферках:
Неважно что это по сути: прелоадер, часы, таймер, еще какой либо счетчик. Суть в том, что есть клип (movieClip) с анимацией перехода от одной цифры в другую от нуля до девятки, зацикленную в финале снова на ноль.

В ключевых фазах (кадр в котором отрисована целая цифра) установлены кадры со скриптом:
stop(); this.value = 3;
Конечно, если сейчас в кадре отрисована цифра 2, value будет равно 2, если 8 – то value=8 и так далее.
Таким образом клип будет знать, какую цифру он сейчас отображает )
В случае с прелоадером, нам надо поместить на сцену два таких клипа: один для десятков, другой для единиц. Для часов таких клипов будет как минимум 4 (часы и минуты) или даже больше. Остановимся для простоты примера на прелоадере.
Дадим каждому соответсвенно имя des_mc и ed_mc:

Остается только написать скрипт прелоадера, который будет собирать загруженный процент всего флеш-ролика, и отделять десятки от единиц, проверять каждый клип на его текущее значение (value) и в случае, если новое найденое значение не равно текущему значению клипа (des_mc или ed_mc), запускать анимацию нужного клипа.
onEnterFrame = function():Void { var tot:Number = _root.getBytesTotal(); var ldd:Number = _root.getBytesLoaded(); var proc:Number = Math.round((ldd/tot)*100);//вычисляем процент var des:Number = Math.floor(proc/10);// выделяем десятки var ed:Number = proc-des*10;//выделяем единицы if (proc>98) { // если процент будет равен 100 то счетчик слетит в нули // чтобы этого не произошло, фиксируем максимум на девятки des = 9; ed = 9; } if (des_mc.value != des) { des_mc.play(); } if (ed_mc.value != ed) { ed_mc.play(); } if (ldd>=tot) { //скрипт запуска флешки play(); } };
Popularity: 23% [?]
Entry Filed under: ActionScript,анимация

2 комментария
1. DarkArt3D | ноября 24, 2009 at 16:32
… спасибо за урок … попробую что нибудь подобное намутить …
а то стандартные прелоадер с полоской достал )
2. Как сделать п&hellip | мая 13, 2010 at 6:43
[...] Также, несложный, но оригинальный прелоадер можно найти в блоге флешера Михаила Иванчука. Там же есть и урок. [...]