⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animatecolorpropertyinstance.as

📁 QS我也没用过
💻 AS
字号:
package qs.effects.effectClasses
{
	import mx.effects.effectClasses.TweenEffectInstance;
	import mx.core.mx_internal;
	import qs.utils.ColorUtils;
	
	use namespace mx_internal;
		
	public class AnimateColorPropertyInstance extends TweenEffectInstance
	{
		public function AnimateColorPropertyInstance(target:Object)
		{
			super(target);
		}
		public var property:String;
		public var toValue:Number;
		public var fromValue:Number;
		public var isStyle:Boolean = false;
		
		private var fromHSV:Object;
		private var toHSV:Object;
			
		override public function play():void
		{
			// Do what effects normally do when they start, namely
			// dispatch an 'effectStart' event from the target.
			super.play();

			fromHSV = ColorUtils.RGBToHSV(fromValue);
			toHSV = ColorUtils.RGBToHSV(toValue);			
			// Create a Tween 
			tween = /*mx_internal::*/createTween(this, 0, 1, duration);
	
			// If the caller supplied their own easing equation, override the
			// one that's baked into Tween.
			if (easingFunction != null)
				tween.easingFunction = easingFunction;
	
			onTweenUpdate(Number(tween.mx_internal::getCurrentValue(0)));
		}
		
		
		/**
		 * @private
		 */
		override public function onTweenUpdate(value:Object):void
		{
			var newHSV:Object = {
				h: fromHSV.h + (toHSV.h - fromHSV.h)*Number(value),
				s: fromHSV.s + (toHSV.s - fromHSV.s)*Number(value),
				v: fromHSV.v + (toHSV.v - fromHSV.v)*Number(value)			
			}
			var rgb:Number = ColorUtils.HSVToRGB(newHSV);
			if(isStyle)
				target.setStyle(property,rgb);
			else
				target[property] = rgb;
		}

	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -