Работа с классом TweenLite.

Доброго времени суток!



Для создания обыкновенного банера во Flash в основном требуються только навыки анимации и знание AS1, чтобы где необходимо поставить stop(); или перейти по ссылке getURL();, и обычно этого хватает. Но если заказчик просит сделать мини мультфильм внутри банера, да еще и растровые изображение присутствуют, а в тоже время администраторы сайта, где будет размещаться банер, ставят на него ограничение 20 кб. Использование множества слоев с Motion tween и Shape tween, объектов в библиотеке и т.д. За счет всего этого объем банера превышает допустимую квоту.

Ниже будем избавляться от tween'ов на нашей сцене и опишем все движения при помощи класса TweenLite(используется с AS2,AS3).

Для начала нам надо определиться как будем работать с кодом, здесь есть два пути:
  1. Создание отдельного класса с кодом(к примеру: tween.as).
  2. Использование одного из кадров сцены где будет храниться наш код.

1.
В этом случае необходимо будет в наш ролик, в первом кадре сцены прописать #include «tween.as». Создадим класс tween.as. Внутри самого класса будет примерно такая структура:

//добавление классов для анимации

import gs.TweenLite;
import gs.easing.*

//описание нашего класса

class tween extends MovieClip
{

//описание клипов
private var mc:MovieClip;
public var mc_:MovieClip;

//описание функций

public function tween1(){}
private function tween2(){
}


Не будем заострять на этом пути внимании и сделаем более просто.

2.
Сразу хочу предупредить что всем объектам, которые находятся на сцене, заранее заданы имена. В созданном ролике в первом кадре пишем:

//добавление классов для анимации

import gs.TweenMax;
import gs.easing.*

//сама анимация

TweenLite.to(mc, 1, {_x:1, _y:1, _xscale:1, _yscale:1, _rotation:0, _alpha:100, tint:0x000000, ease:Back.easeOut});


TweenLite.to(имя клипа, скорость_анимации, {положение_клипа_на_сцена_по_x_в_конце_анимаци, положение_клипа_на_сцена_по_y_в_конце_анимаци, размер_который_примет_объект_к_концу_анимации_width, размер_который_примет_объект_к_концу_анимации_height, поворот_клипа_(положительное — по часовой, отрицательное — против часовой), прозрачность_клипа, цвет_клипа_к_концу_анимации, ease:Back.easeOut});

Пункт ease отвечает за тип движения. Существует несколько видов:
  • без ease(обычное равномерное движение)
  • Back.easeIn
  • Back.easeOut
  • Back.easeInOut
  • Bounce.easeIn
  • Bounce.easeOut
  • Bounce.easeInOut
  • Circ.easeIn
  • Circ.easeOut
  • Circ.easeInOut
  • Cubic.easeIn
  • Cubic.easeOut
  • Cubic.easeInOut
  • Elastic.easeIn
  • Elastic.easeOut
  • Elastic.easeInOut
  • Expo.easeIn
  • Expo.easeOut
  • Expo.easeInOut
  • Linear.easeNone
  • Quad.easeIn
  • Quad.easeOut
  • Quad.easeInOut
  • Sine.easeIn
  • Sine.easeOut
  • Sine.easeInOut


Для создания обычного движения так сказать из пункта А в пункт В, хватит этого. Если создавать последовательное движение то можно просто сделать функцию:

function enableTween():Void
{
TweenLite.to(mc, 1, {_x:1, _y:1, delay:0.0, _xscale:1, _yscale:1, _rotation:0, _alpha:100, tint:0x000000, ease:Back.easeOut});
TweenLite.to(mc, 1, {_x:1, _y:1, delay:0.1, _xscale:1, _yscale:1, _rotation:0, _alpha:100, tint:0x000000, ease:Back.easeOut});
TweenLite.to(mc, 1, {_x:1, _y:1, delay:0.2, _xscale:1, _yscale:1, _rotation:0, _alpha:100, tint:0x000000, ease:Back.easeOut});
}


И запустить в нужном месте программы enableTween();

Более подробную информацию о данном классе можно узнать в этом блоге. Там же его можно скачать.
+6
20 декабря 2008, 19:54
4
shvagir 11,8

комментарии (13)

0
Obi #
Actionscript2 уже не стоит использовать года 2-3. И да, есть отличный класс Tweener.
И да, плюс топику за вообще ас :) На своей памяти я ас на хабре не припомню :)
0
FilimoniC #
Баннеры на AS3 получаются тяжелее и не поддерживаются плеерами ниже 10й версии. Так почему же его не стоит использовать?
+2
profound #
Вы немного дезинформированы, AS3 потдерживается плеерами начиная с 9 версии.
–1
FilimoniC #
Простите, переклинило меня чето. Но то что они весят больше — факт. Это критично при охоте за последним байтом.
+1
DarkLight #
хех, а я вот как-то gTween предпочитаю
+1
shvagir #
Да классов очень много, из серии TweenLite есть еще и TweenMax и т.д. Каждый использует класс, который ему удобнее.
0
DarkLight #
Ну это да, хотя все же Tweener, TweenLite и gTween сейчас основные. Про TweenMax и не слышал даже.
0
shvagir #
О TweenMax и его возможностях можно почитать тут
0
profound #
Вы инклудите класс? Интересный ход.
«скорость_анимации» в вашем переводе немного смущает, вот как автор называет этот параметр «duration: Duration (in seconds) of the tween»
TweenMax — это тот же TweenLite, только на «стеройдах» (так весело его называет автор). Вообще у автора много хороших классов, особенно для AS2, пусть его и «не стоит использовать года 2-3».
0
barby #
По-моему, баннеры гораздо удобней анимировать по таймлайну, нет?
0
profound #
А это уж кому как, иногда одна строка кода дается быстрее чем пара тыков мышкой по кадрам и боксам, тут все от человека зависит, кто к чему привык.
0
shoosh #
Tweener`ом пользуюсь.
0
Dojd #
Было бы супер, если б в статье было написано почему именно TweenLite, его плюсы и минусы.
А как использовать класс — это уже мелочи, тем более что рецепт подходит для множества подобных классов твинеров.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.