flex根据两个颜色返回任意多个渐变颜色

转载 2013年12月04日 09:43:09
//根据2个颜色返回多个渐变色
	public class ColorGradient
	{
		public function ColorGradient()
		{
		}
		/**  
		 * 输入一个颜色,将它拆成三个部分:  
		 * 红色,绿色和蓝色  
		 */  
		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;
		} 
	}

使用方法:只需调用generateTransitionalColor方法,例如:

 var c1:uint=0xFF0000;

var c2:uint=0x000000;

var colors:Array=ColorGradient.generateTransitionalColor(c1,c2,10);

最后效果图如下:


技能GET-使用CSS3渐变实现单一元素多颜色展示

发现一个比较好玩的东东,CSS3渐变,基本介绍和使用方式详见http://www.runoob.com/css3/css3-gradients.html。 原本是实现颜色的过渡效果,已替代图片的使用...
  • lm278858445
  • lm278858445
  • 2016年11月28日 16:03
  • 439

OpenCV——颜色均匀渐变

参考: 利用OpenCV生成关于某点的颜色径向均匀渐变图像
  • shinian1987
  • shinian1987
  • 2015年08月01日 10:56
  • 2950

Android获得线性渐变某点的颜色

线性渐变图片作为SeekBar的背景,用来选择颜色,滑到哪就选择哪里的颜色
  • u010593680
  • u010593680
  • 2016年03月26日 17:17
  • 3837

利用OpenCV生成关于某点的颜色径向均匀渐变图像

【原文:http://blog.csdn.net/quarryman/article/details/6418188】 [cpp] view plaincopy ...
  • zhazhiqiang2010
  • zhazhiqiang2010
  • 2014年11月25日 21:40
  • 966

jQuery/js实现颜色渐变

1.目的。 开始想做ya
  • u014602497
  • u014602497
  • 2014年11月02日 15:42
  • 2421

CSS3颜色值RGBA与渐变色

CSS3之前渐变色图片只能用背景图片 CSS3的渐变色语法可以让我们省去下载图片的开销 并且在改变浏览器分辨率时有更好的效果颜色值RGBA我们熟悉的rgb颜色标准,是由r(red)、g(green...
  • q1056843325
  • q1056843325
  • 2016年11月15日 18:33
  • 2324

android非线性渐变色,不同区域显示不同的渐变效果

本文讨论的是android中如何实现更平滑的单色渐变效果。一般来说,当我们想让界面上的某个区域呈现单色渐变效果,我们用drawable 来实现: ...
  • lw585625
  • lw585625
  • 2016年05月29日 22:14
  • 618

android_Color.RGB 颜色之间渐变基本算法

android之颜色渐变基本算法应用 由于最近项目需要做一个信誉界面,信誉度越高,颜色是绿色的,信誉越低,颜色则是红色,之间则是两则之间的颜色;当然一开始设计的时候,在这个色条上取几个代表性的颜色,然...
  • qq_20613731
  • qq_20613731
  • 2015年08月08日 14:38
  • 1439

Html中背景色之颜色渐变

颜色渐变:   原理:以水平中心开始顺时针画圆     1.颜色渐变分为水平渐变与放射性渐变     线性渐变:       写法一:background:liner-gradient(red...
  • qq1556837534
  • qq1556837534
  • 2015年11月23日 17:22
  • 1009

unity实现模型颜色渐变

mesh.colors顶点颜色,是要有shader支持。对于什么shader去支持呢?对此留下了一个疑问。...
  • fanglrui
  • fanglrui
  • 2014年02月20日 14:36
  • 5298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:flex根据两个颜色返回任意多个渐变颜色
举报原因:
原因补充:

(最多只允许输入30个字)