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

магические движения

MARKO BELICH

Спецвыпуск: Хакер, номер #071, стр. 071-016-2


Посмотрим, как это работает на простом примере. Нарисуем на сцене что угодно и сделаем от этого movieClip. На 20-м кадре делаем другой ключевой кадр и двигаем movieClip на другое место. Между ключевыми кадрами делаем motionTween. Экспортируем и смотрим размер swf-файла. Размер должен быть достаточно маленьким, меньше 1 Кб, если, конечно, поверхность достаточно простая. Добавим теперь изменения для некоторых атрибутов. Поменяем цвет, ротацию, размер и прозрачность movieClip на втором ключевом кадре. Количество изменений выросло, и увеличился размер swf-файла, но не намного.

Давай теперь добавим еще кадров, увеличим длину tween. Подвинь последний ключевой кадр на 100-ый кадр и посмотри размер. Теперь на 200-ый, а потом и 1000-ый. Умножь это на 10 или на 20, что примерно представляет общее количество tween-кадров в одном проекте. Размер еще кажется маленьким? Конечно, даже такой размер на сегодняшний день, при серфинге интернета через высокоскоростные каналы, не представляет большой проблемы. Скорее всего, основную проблему создаст перемещение ключевых кадров. Двигать второй ключевой кадр на 1000-ый кадр было не очень приятно? А представь, что это надо делать по 20 раз и больше...

[ActionScript tween.]

Нам нужен один movieClip и десяток строк на AS, которые мы можем использовать для анимации любого movieClip в проекте. Не будет дополнительных tween-кадров, в которых записано, как меняются атрибуты клипов, следовательно, размер swf не будет увеличиваться. Все потому, что такой тип tween не вычисляет анимацию наперед, а только в момент ее воспроизведения. То есть компьютер в процессе прорисовки анимации должен калькулировать tween в каждом кадре. Звучит как проблема, но сегодняшние мощности персоналок глотают подобные вычисления без особых напрягов.

Достаточно написать одну строку — вызов функции, которой мы передаем название и атрибуты изменяемого movieClip, конечные числа анимации и количество кадров (длину tween). Все кажется достаточно простым. Чтобы, к примеру, поменять длину tween (подвинуть его на 1000-ый кадр), достаточно поменять одно число в его функции.

Код, который используется для tween, по размеру в финальном swf-файле занимает около 3-4 Кб. В этом коде находятся все возможные комбинации tween, которые мы, возможно, и не будем использовать. Но этот единый код мы можем использовать везде в проекте.

[tween-прототипы.]

Скрипт во флеше, как и все остальное, основан на проигрывании кадров. В старых версиях флеша был единый способ создания подобной анимации — с помощью пустых клипов, которые постоянно крутили два кадра, а в одном из них был скрипт, который нужно было запускать. Теперь есть возможность программно запустить скрипт на любом movieClip с помощью onEnterFrame-функции (handler), скорость же зависит от FPS-проекта.

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