输出连续颜色

输出连续颜色:

 /**
 *
 * *-----------------------*
 * |  *** 输出连续颜色 ***  |
 * *-----------------------*
 *
 * 编辑修改收录:fengzi(疯子、wu341、wgq341)
 *
 * 不会写代码,我是代码搬运工。
 *
 * 联系方式:QQ(493712833)。
 *
 * 随   笔: https://www.cnblogs.com/fengziwu/
 *
 * 版权协议:请自觉遵守LGPL协议,欢迎修改、复制、转载、传播给更多需要的人。
 * 免责声明:任何因使用此软件导致的纠纷与软件/程序开发者无关。
 * 日   期: 2019.05.08
 */
 
/**
 * 24位、32位颜色
 * reload() 连续执行此方法,不断更新颜色值
 * @author fengzi
 * @date : 28/11/2018
 */

package fengzi.colors
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.utils.Timer;
	import flash.events.TimerEvent;

	public class GetColor extends Sprite
	{

		private var _colorRandom:uint;
		private var _color:uint = 0xf09000;
		private var colorArray:Array;
		private var index:uint = 0;
		private var mz:int = 1;
		private var _index:uint = 0;
		private var i:Number;
		private var j:Number;
		
		//构造函数
		public function GetColor():void
		{
			colorArray = color_arr();
			
		}
		//连续执行此方法,不断更新颜色值
		public function reload():void
		{
			i = Math.random();
			if (i > 0.99)
			{
				mz *=  -1;
			}
			j = Math.round(mz * i * 5);
			index +=  j;
			if (index < 0)
			{
				index = colorArray.length - 1;
			}
			else
			{
				if (index >= colorArray.length)
				{
					index = 0;
				}
			}
			_colorRandom = colorArray[index];



			if (++_index > colorArray.length - 1)
			{
				_index = 0;
			}
			_color = colorArray[_index];
		}

		private function color_arr():Array
		{

			var color1:Array = [];
			var color2:Array = [];
			var color3:Array = [];
			var color4:Array = [];
			var color5:Array = [];
			var color6:Array = [];
			var color7:Array = [];
			for (var n:int = 0; n <255; n +=  3)
			{
				color1.push(0xFF0000 + n * 255);
				color2.push((255 - n) * 0x10000 + 0xFF00);
				color3.push(0xFF00 + n);
				color4.push((255 - n) * 255 +255);
				color5.push(255 + n * 0x10000);
				color6.push(255 - n+ 0xFF0000);

			}
			color7 = [].concat(color1).concat(color2).concat(color3).concat(color4).concat(color5).concat(color6);
			return color7;
		}


		/**
		* @color32Random               连续的随机颜色
		* @return                      返回32位随机颜色值
		*/
		public function get color32Random():uint
		{
			var red:uint = _colorRandom >> 16;
			var green:uint = _colorRandom >> 8 & 0xFF;
			var blue:uint = _colorRandom & 0xFF;
			return getColorFromRGBA(red,green,blue,255);
		}
		
		
		
		

		/**
		* @orderColor32                连续的顺序颜色
		* @return                      返回32位顺序颜色值
		*/
		public function get orderColor32():uint
		{
			var red:uint = _color >> 16;
			var green:uint = _color >> 8 & 0xFF;
			var blue:uint = _color & 0xFF;
			return getColorFromRGBA(red,green,blue,255);
		}
		
		
		/**
		* @color24                     连续的顺序颜色
		* @return                      返回24位顺序颜色值
		*/
		public function get color24():uint
		{
			return _color;
		}






		/**
		* @getColorFromRGBA                颜色通道
		* @param            r              红色值
		* @param            g              绿色值
		* @param            b              蓝色值
		* @param            a              Alpha 值
		* @return                          32位颜色值0xFFFFFFFF
		*/
		public function getColorFromRGBA(r:uint=0,g:uint=0,b:uint=0,a:Number=1.0):uint
		{
			return ((a * 0xff ) & 0xff) << 24| r << 16| g << 8 | b;
		}
		
		
		
		

		/**
		* @getColorFromRGB                 颜色通道
		* @param            r              红色值
		* @param            g              绿色值
		* @param            b              蓝色值
		* @return                          24位颜色值0xFFFFFF
		*/
		public function getColorFromRGB(r:uint=0,g:uint=0,b:uint=0):uint
		{
			return r << 16 | g << 8 | b;
		}

		


		/**
		* @randomColor24                    
		* @return                      返回24位随机颜色值
		*/
		public function get randomColor24():uint
		{
			var r:Number = Math.random() * 255;
			var g:Number = Math.random() * 255;
			var b:Number = Math.random() * 255;
			return r << 16 | g << 8 | b;
		}
		
		
		
		
		
		/**
		* @randomColor32                    
		* @return                      返回32位随机颜色值
		*/
		public function get randomColor32():uint
		{
			var a:Number = Math.random() * 255;
			var r:Number = Math.random() * 255;
			var g:Number = Math.random() * 255;
			var b:Number = Math.random() * 255;
			return a << 24 | r << 16 | g << 8 | b;
		}







	}

}

  

原文地址:https://www.cnblogs.com/fengziwu/p/10909007.html