магические движения 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-МЕНЕДЖЕРОВ, ТАК ЧТО МОЖНО ПОСМОТРЕТЬ, КАК ОНИ РАБОТАЮТ, И ОПРЕДЕЛИТЬСЯ, КАКОЙ ТЕБЕ БЛИЖЕ. |