Показать сообщение отдельно
Старый 04.03.2007, 17:23
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 34  
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Добавка к mx.transitions, позволяет анимировать картинку из цветной к монохромной произвольного оттенка.
Код:
/***********************************************************************
* SEPIA TRANSITION CLASS-FILE
* put this file into [Flas 8 folder]\en\First Run\Classes\mx\transitions
* restart Flash
* ----------------------------------------------------------------------
* SAMPLE USAGE:
* import mx.transitions.*;
* import mx.transitions.easing.*;
* TransitionManager.start([linkage to your MovieClip], 
						   {type:Sepia, 
						   direction:Transition.[IN or OUT], 
						   duration:[seconds:Number], 
						   easing:None.easeNone, 
						   tint:[256 bit color:Number]});
* ----------------------------------------------------------------------
* © WVXVW
************************************************************************/
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import flash.filters.ColorMatrixFilter;
class mx.transitions.Sepia extends Transition {
	#include "Version.as"
	public var type:Object = Sepia;
	public var className:String = "Sepia";
	private var myColorMatrix_filter:ColorMatrixFilter;
	private var __tgt:MovieClip;
	private var __tint:Number = 0x000000;
	private var __to:Object = {};
	function Sepia(content:MovieClip, transParams:Object, manager:TransitionManager) {
		this.init(content, transParams, manager);
	}
	function init(content:MovieClip, transParams:Object, manager:TransitionManager):Void {
		super.init(content, transParams, manager);
		this.myColorMatrix_filter = new ColorMatrixFilter();
		this.__tgt = content;
		this.__tint = transParams.tint;
		this.__to = toRGB(this.__tint);
	}
	private function _render(p:Number):Void {
		var rc:Number = 0.3086;
		var gc:Number = 0.6094;
		var bc:Number = 0.0820;
		var myElements_array:Array = [1-p*(1-rc)+this.__to._r*p, p*gc, p*bc, 0, 0, 
									   p*rc, 1-p*(1-gc)+this.__to._g*p, p*bc, 0, 0, 
									   p*rc, p*gc, 1-p*(1-bc)+this.__to._b*p, 0, 0, 
									   0, 0, 0, 1, 0];
		this.myColorMatrix_filter = new ColorMatrixFilter(myElements_array);
		this.__tgt.filters = [myColorMatrix_filter];
	}
	private function toRGB(_num:Number):Object {
		var c_obj:Object = {_r:((_num >> 16) & 0xff)/255, _g:((_num >> 8) & 0xff)/255, _b:(_num & 0xff)/255};
		return c_obj;
	}
}
__________________
Hell is the possibility of sanity