Класс для плавного появления и затухания MovieClip-ов
Очень часто при программировании игр хочется сделать для красоты плавное появление или затухание менюшек, кнопок и т.д. Каждый раз писать функционал для этого – очень геморно, поэтому я представляю вашему внимаю класс alphaFader, унаследовав который можно без проблем заставить MovieClip плавно появлятся или исчезать.
package anegLib { import flash.display.MovieClip; dynamic public class alphaFader extends MovieClip { import flash.utils.*; import flash.events.*; import flash.display.*; import flash.text.*; //Идёт затухание или появление (пременная для внутренних нужд) var fadingout:Boolean=false; //Скорость затухания public var fadeSpeed:Number=0.1; //Проявление до определённого порога (1.0 - полностью непрозрачный) public var fadeMaxLimit:Number=1.0; //Затухание до определённого порога (0.0 - полностью прозрачный) public var fadeMinLimit:Number=0.0; public function alphaFader() { fadingout=false; addEventListener(Event.ENTER_FRAME, update); } //Начать затухание public function startFadeIn():void { alpha=0; visible=true; fadingout=false; } //Начать появление public function startFadeOut():void { alpha=1; visible=true; fadingout=true; } //Обновление параметров public function update(e : Event):void { if(visible) { if(fadingout) { if(alpha<=fadeMinLimit) { alpha=fadeMinLimit; visible=false; fadingout=false; } else alpha-=fadeSpeed; } else if(alpha>=fadeMaxLimit) { alpha=fadeMaxLimit; } else alpha+=fadeSpeed; } } } }
Унаследовать класс можно или прописав его в Link Properties:

Либо указав в самом коде:
package game { public class gameMenu extends alphaFader { //......... } }
Использовать его весьма просто: вызываем startFadeIn() и мовиклип начинает появлятся, вызываем startFadeOut() и мовиклип плавно исчезает. Всё просто ![]()
Также можно установить скорость и порог затухания.
Пример использования порога затухания: Вам надо сделать чтобы при появлении менюшки игровое поле затемнялось на половину. Чтобы это сделать вам надо создать мовиклип на весь экран, содержащий чёрный прямоугольник. Потом унаследовать у него класс alphaFader. При вызове менюшки, надо будет вызывать у мовиклипа с чёрным прямоугольником startFadeIn() а также указать порог его появления fadeMaxLimit=0.5
Вот и всё. Надеюсь этот класс будет вам полезен
Класс можно скачать здесь: http://www.anegmetex.com/devblog/files/alphaFader.as
Категория: Полезные классы

Декабрь 13th, 2009 at 21:53
Use TweenLite, Luke!
Декабрь 29th, 2009 at 23:22
Тока начинаю программить на AS3 обязательно воспользуюсь наработкой. пасиб
Март 21st, 2010 at 15:16
не надо велосипеды изобретать!
есть куча твинеров, они умееют не только фейдить через альфу, TweenLite, Caurina и т.д., пробей по гуглу =)
Март 21st, 2010 at 21:11
Универсальность всегда идёт в ущерб как производительности так и удобству использования. Если бы мне требовалось бы сложная анимация движения\изменения параметров, то был бы резон воспользовался твиннером. Но для простого исчезновения объекта использовать твиннер всё равно что гвозди забивать микроскопом.