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

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

MARKO BELICH

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


Основу AS tween заложил Роберт Пеннер (www.robertpenner.com). Он первый, кто написал пакет основных функций. Эти функции (tween-прототипы) сделали настоящий переворот в мире AS-программирования, и в последней версии флеша Macromedia официально предложила их для AS tween.

Посмотрим несколько tween-прототипов. В первой версии, которая написана для AS1 (ее-то мы и будем использовать), все функции написаны как часть Math-объекта. Самая простая из них делает линейный tween - анимацию без ускорения и замедления.

// t: текстурный кадр, b: начальное значение, c: изменение значения, d: длина tween в кадрах

Math.linearTween = function (t, b, c, d){

return c*t/d + b;

};

Эта функция, как и все остальные, получает некоторые значения на входе и возвращает просчитанные значения, которые мы можем использовать для анимации. Первый параметр (t) означает текущий кадр, который считаем. Его значение начинается с единицы и увеличивается до числа, которое означает длину анимации в кадрах (d). Второй параметр (b) — это начальное значение атрибута, который обсчитываем. Так, если буем двигать movieClip просто по _x- направлению, тогда нам нужно начальное значение _x. Третий параметр (c) означает, на сколько нужно поменять атрибут movieClip. Чтобы подвинуть movieClip на 200 пикселей вправо, просто нужно поставить 200. Для движения влево нужно поставить -200. В четвертом параметре — количество кадров, то есть длина анимации. Здесь можно поставить любое число больше нуля.

Следующая функция делает более сложное движение. Сначала объект будет двигаться медленно, потом быстрее.

// t: текущий кадр, b: начальное значение, c: изменение значения, d: длина tween в кадрах

Math.easeInCirc = function (t, b, c, d) {

return -c * (Math.sqrt(1 — (t/=d)*t) — 1) + b;

};

Все функции можно найти на странице Роберта Пеннера www.robertpenner.com. Причем функции существуют для двух форматов - AS1 и AS2.

Для движения movieClip нам нужны не только tween-прототипы. Они возвращают специфические значения в зависимости от параметров, которые мы им задаем. А нужен нам еще один тип функции — tween manager. Именно tween manager упростит и автоматизирует процесс создания tween.

Нет единого способа создания tween-менеджера. По сути, это функция, которая принимает, аналогично tween-прототипам, параметры, меняет переменную (t) текущего кадра и атрибуты movieClip в зависимости от результата. В Сети есть несколько неплохо сделанных и проверенных временем «пакетов» функций, с помощью которых можно сделать любой tween. Вот некоторые из них:

1 TWEEN MANAGER LADISLAVA ZIGO МОЖНО НАЙТИ НА HTTP://LACO.WZ.CZ/TWEEN/. НА ЕГО САЙТЕ НАХОДИТСЯ И ПРОГРАММКА ДЛЯ СОЗДАНИЯ ЛЮБОЙ TWEEN-ФУНКЦИИ, КОТОРУЮ МОЖНО СКАЧАТЬ КАК КОМПОНЕНТ ДЛЯ ФЛЕША. ЕСТЬ И ОБЗОР РАЗНЫХ TWEEN-МЕНЕДЖЕРОВ, ТАК ЧТО МОЖНО ПОСМОТРЕТЬ, КАК ОНИ РАБОТАЮТ, И ОПРЕДЕЛИТЬСЯ, КАКОЙ ТЕБЕ БЛИЖЕ.

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