Анимированный прелоадер

мая 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

    [...] Также, несложный, но оригинальный прелоадер можно найти в блоге флешера Михаила Иванчука. Там же есть и урок. [...]




МЕТА

Метки

2d 3D ActionScript adobe ae after effects animation animator_at_work AS2.0 AS3.0 astro bones bug bugfix debug deep linking draw drawing extension Flash flash CS4 flex fscommand fx html IK Math mindstream music-video NB opensource security swfaddress TextField traps uafpug useful utils video Новости анимация кинематика кости поток сознания туториал

Календарь

Май 2009
Пн Вт Ср Чт Пт Сб Вс
« Апр   Июл »
 123
45678910
11121314151617
18192021222324
25262728293031

Архив

Ссылки

Радио