AS3颜色过渡

/**
		 * 输入一个颜色,将它拆成三个部分:
		 * 红色,绿色和蓝色
		 */
		public static function retrieveRGBComponent( color:uint ):Array
		{
			var r:Number = color >> 16;
			var g:Number = (color >> 8) & 0xff;
			var b:Number = color & 0xff;

			return [r, g, b];
		}

		/**
		 * 红色,绿色和蓝色三色组合
		 */
		public static function generateFromRGBComponent( rgb:Array ):int
		{
			if( rgb == null || rgb.length != 3 || 
				rgb[0] < 0 || rgb[0] > 255 ||
				rgb[1] < 0 || rgb[1] > 255 ||
				rgb[2] < 0 || rgb[2] > 255 )
				return 0xFFFFFF;
			return rgb[0] << 16 | rgb[1] << 8 | rgb[2];
		}

		/**
		 * color1是浅色,color2是深色,实现渐变
		 * steps是指在多大的区域中渐变,
		 */
		public static function generateTransitionalColor( color1:uint, color2:uint, steps:int):Array
		{
			if( steps < 3 )
				return [];

			var color1RGB:Array = retrieveRGBComponent( color1 );
			var color2RGB:Array = retrieveRGBComponent( color2 );

			var colors:Array = [];
			colors.push( color1 );
			steps = steps - 2;

			var redDiff:Number = color2RGB[0] - color1RGB[0];
			var greenDiff:Number = color2RGB[1] - color1RGB[1];
			var blueDiff:Number = color2RGB[2] - color1RGB[2];
			for( var i:int = 1; i < steps - 1; i++)
			{
				var tmpRGB:Array = [
					color1RGB[0] + redDiff * i / steps,
					color1RGB[1] + greenDiff * i / steps,
					color1RGB[2] + blueDiff * i / steps
				];
				colors.push( generateFromRGBComponent( tmpRGB ) );
			}
			colors.push( color2 );

			return colors;
		}
时间: 2024-10-09 20:12:48

AS3颜色过渡的相关文章

渐变颜色过渡

一个分类, 粘贴到项目中即可, 调用方法在下边, 注意这里没头文件的方法声明, 需要自己复制过去 #import "UIView+Extension.h" @implementation UIView (Extension) static CAGradientLayer *gradientLayer_; - (void) insertTransparentGradientFromColor:(UIColor *)fromColor toColor:(UIColor *)toColor

鄙人做了一个颜色RGB的代码,颜色过渡,不知道高手是怎么做的。求赐教

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace 动态生成RGB 11 { 12 public partial clas

Unity使用 16bit 压缩 Texture 颜色能均匀过渡

下面是unity自带 16bit 图 的效果,可以看到颜色过度的很不均匀,占用内存 0.5M    如果调成 truecolor 后 颜色过渡很均匀,而内存却占到 1.1 M    讲图片 后缀名改成  .Dither.png  结尾后回到 unity,设置贴图格式为 Truecolor 后,颜色过渡也很均匀,而且内存只占了 0.5M 以下代码来至 keijiro 的 github:unity-dither4444 1 using UnityEngine; 2 using UnityEditor

Css3 过渡(Transition)特效回调函数

Css3 出来之后,能够说是替代了Flash,通过使用Html5和Css3的完美结合.就能够做出不论什么你想得到的特效,这里不再阐述... 近期在做一个喝水签到的功能.在想签到成功之后,签到框能够模拟被水充满的效果.如图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 这是一个简单的颜色过渡,几行代

图像检索:CEDD(Color and Edge Directivity Descriptor)算法 颜色和边缘的方向性描述符

颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) 本文节选自论文<Android手机上图像分类技术的研究>. CEDD具有抽取特征速度较快,特征描述符占用空间较小的优势.下面就对CEDD原理进行详细的阐述和分析. 1.颜色信息 CEDD特征结合了颜色和纹理两方面信息,本小结将给出颜色信息提取的过程,重点分析RGB-HSV模型转换.10-bins模糊过滤器和24-bins模糊过滤器的原理. 1.1.RGB模型转换为HSV模型 RGB

AS3常用动画效果公式集合

AS3缓动公式:sprite.x += (targetX – sprite.x) * easing;//easing为缓动系数变量sprite.y += (targetY – sprite.y) * easing; AG: <!-- 示例一:AS3缓动公式 从(0,0)移到(x,y) --> <div id="box" style="width: 100px; height: 100px; background: #f85455;position: abso

『HTML5梦幻之旅』 - 舞动色彩,Canvas下实现颜色动画

注:为了方便起见,本次开发用到了开源引擎lufylegend,官方地址如下:http://lufylegend.com/lufylegend 今天来学习下HTML5 Canvas颜色动画.什么是颜色动画呢?以我的理解就是以某种颜色过渡到另一种颜色.和这个效果有点类似:http://w3school.com.cn/tiy/t.asp?f=css3_animation1 上面的demo是用css3实现,而我们今天要用的是Canvas.Canvas并没有相关的API,所以要想实现这种效果,只有靠自己了

as3 公式

AS3缓动公式:sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量sprite.y += (targetY - sprite.y) * easing;AS3弹性公式:vx += (targetX - sprite.x) * spring;//spring为弹性系数vy += (targetY - sprite.y) * spring;sprite.x += (vx *= friction);//friction为摩擦力sprite.

ShaderLab学习小结(七)用插值函数lerp渐变颜色

运行环境:Win10 x64Unity 5.5.4在场景中创建一个cube,使它的颜色产生简单的两种颜色过渡的渐变效果,如下图:先说一下CG语言中的lerp函数lerp(a, b, w); a与b为同类形,即都是float或者float2之类的,那lerp函数返回的结果也是与ab同类型的值.w是比重,在0到1之间当w为0时返回a,为1时返回b,在01之间时,以比重w将ab进行线性插值计算. 功能很简单,实现也很简单.Shader代码: Shader "Custom/TestRedYellow&q