Анимационные эффекты в ActionScript 3.0

Пакет fl.transitions включает довольно многочисленный набор классов, которые позволяют быстро добавить в Ваше приложение на языке ActionScript 3.0 целый ряд интересных анимационных эффектов.

В качестве объектов, к которым могут быть применены данные эффекты, выступают экземпляры класса MovieClip. При этом надо заметить, что внешний вид этих анимационных эффектов сильно зависит от расположения точки регистрации объекта, к которому данный эффект применяется.

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

1.) Blinds

Класс Blinds показывает объект, используя появляющиеся или исчезающие прямоугольники.

Генератор кода:

2.) Fade

Класс Fade плавно показывает или удаляет объект.

Генератор кода:

3.) Fly

Класс Fly плавно сдвигает объект в определенном направлении.

Генератор кода:

4.) Iris

Класс Iris показывает объект с помощью квадратной или круглой анимированной маски, размер которой можно увеличивать или уменьшать.

Генератор кода:

5.) Photo

Класс Photo создаёт эффект, напоминающий вспышку фотоаппарата.

Генератор кода:

6.) PixelDissolve

Класс PixelDissolve открывает или закрывает объект, используя беспорядочное появление или исчезновение прямоугольников в шахматном порядке.

Генератор кода:

7.) Rotate

Класс Rotate используется для поворота объекта.

Генератор кода:

8.) Squeeze

Класс Squeeze непропорционально масштабирует объект (сравни с Zoom).

Генератор кода:

9.) Wipe

Класс Wipe открывает или скрывает объект, используя анимированную маску.

Генератор кода:

10.) Zoom

Класс Zoom масштабирует объект, используя пропорциональное изменение размеров (сравни с Squeeze).

Генератор кода:

А теперь приведём пример...

Код ActionScript 3.0:

/* импортируем необходимые классы */ import fl.transitions.*; import fl.transitions.easing.*; /* создаём мувик, который будем анимировать */ var mc:MovieClip = new MovieClip(); mc.graphics.beginFill(0x0000FF); mc.graphics.drawRect(0,0,400,400); mc.graphics.endFill(); addChild(mc); /* таймер будет вызывать наш эффект, продолжительностью в минуту, каждую минуту */ var timer:Timer = new Timer(1000,0); timer.addEventListener(TimerEvent.TIMER, onTick); timer.start(); function onTick(event:TimerEvent):void { TransitionManager.start( mc, { type:Iris, direction:0, duration:1, easing:None.easeNone, startPoint:5, shape:Iris.CIRCLE}); }

Результат:

Надеюсь, что кому-то и пригодится :-)

Автор: admin

Дата добавления: 2012-10-04

Просмотров: 9345

Рейтинг поста: +11-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Андрей
Дата добавления: 2015-12-19
Спасибо, разобрался.

Необходимо было обратиться к вложенному мувику и все пошло отлично))

Germiona2.ВЛОЖЕН_МУВИК.removeChildAt(0);
Germiona2.ВЛОЖЕН_МУВИК.addChildAt(pictLdr, 0);

И, все таки, можно с Вами пообщаться не через сайт, зотя бы по почте???
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-12-19
> У Вас есть аська или другой клиент для обшения?

Одноимённый скайп.
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-12-19
Нет, неправильно. Надо вместо этого:

this.addChild(pictLdr);

делать так:

мувик.removeChildAt(0);
мувик.addChildAt(pictLdr, 0);

this - это вы просто кидаете на сцену, что в данном случае делать не стоит.
Комментатор
Комментарий добавил(а): Андрей
Дата добавления: 2015-12-19
Посмотрите код, пожалуйста:

https://yadi.sk/d/zSjZJdRRmLcM2
Комментатор
Комментарий добавил(а): Андрей
Дата добавления: 2015-12-19
Спасибо за оперативность))
Правда не совсем получилось, прописал

Germiona2.removeChildAt(0);
Germiona2.addChildAt(pictLdr, 0);

Картинка как понял загрузился в мувик, но что странно, мувик определен как Germiona, без двойки на конце((
И еще, в мувике Germiona есть встроенный мувик, что менять альфа канал, может нужно в нем (во встроенном) заменять картинку??

У Вас есть аська или другой клиент для обшения?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-12-19
Здравствуйте. Чтобы управлять прозрачностью, вам в любом случае надо растр превратить в мувиклип: выделите нужную картинку - кнопка F8 - дать имя мувиклипу. Дальше мувиклипом можно управлять. Если картинка загружается динамически, то её тоже можно положить в мувиклип, а потом управлять. Например, как тут: http://edapskov.ru/pages.php?id=271 (там картинка помещается в мувиклип containerImages_mc)
Комментатор
Комментарий добавил(а): Андрей
Дата добавления: 2015-12-19
Здравствуйте, у меня проблемка, хочу применить эффект проявления для динамически загружаемой картинки PNG, не знаю программного перевести картинку мувиклип и перед проявлением присвоить невидимое значение.????

А так, я создал мувиклип, в котором происходит проявление, может Вы еще поможете программно заменить картинку мувика на подгружаемую???

Ссылка на исходник
https://yadi.sk/d/K0gKu22BmLPpq

Заранее спасибо)
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-01-05
Дмитрий, проверять доступность stage надо в любом случае. Иначе ошибки будут возникать постоянно.
Комментатор
Комментарий добавил(а): Дмитрий
Дата добавления: 2014-01-05
Ух-ты:) Спасибо. Но все же, сложнее, чем другие эффекты. А почему к другим эффектам такого подхода не нужно?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2014-01-05
Fly тоже работает. Проверяйте:

package
{
/*
импорт классов
*/
import flash.display.MovieClip;
import flash.events.Event;
import fl.transitions.*;
import fl.transitions.easing.*;
/*
тело класса
*/
public class MyApplication extends MovieClip
{
/*
переменные
*/
private var _myMovieClip:MovieClip;
/*
функция-конструктор
*/
public function MyApplication()
{
/*
ловим момент добавления в список отображения
*/
if (stage)
{
_onAddedToStage();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
}
}
private function _onAddedToStage(event:Event=null):void
{
/*
удаляем слушатель событий
*/
this.removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
/*
рисуем мувик
*/
_myMovieClip = new MovieClip();
_myMovieClip.graphics.beginFill(0xff0000,1);
_myMovieClip.graphics.drawRect(0,0,300,300);
_myMovieClip.graphics.endFill();
this.addChild(_myMovieClip);
/*
запускаем анимацию
*/
TransitionManager.start(_myMovieClip, {type:Fly, direction:0, duration:1, easing:None.easeNone, startPoint:9});
}
}
}
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Страница 1 из 2: 12
Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика