as3.0 小代码(1)------ 颜色渐变中的颜色渐变数组产生算法

//分离:如0xefebec  变成[0xec,0xeb,oxef]
function colorValTransfer(inNum:uint):Array{
	if(inNum>0xffffff){
		throw new Error("Function:colorValTransfer parameter:inNum>>>parameter‘s value must be smaller than 0xffffff");
	}
	var outArr = [];
	outArr[0] = inNum % 0x100;
	var middleVal:uint = Math.floor(inNum / 0x100);
	outArr[1] = middleVal% 0x100;
	outArr[2] = Math.floor(middleVal/0x100);
	return outArr;
}

//找出与0xff的最大差值 如 max(0xff - 0xec,0xff-0xeb,0xff-0xef)
function transferBaseNum(tranferArr:Array):uint{
	var basicNum : uint = 0;
	var ergodicFun = function (element:*, index:int, arr:Array): void {
		var res:int = 0xff - element;
		if(res < 0 || element < 0){
			throw new Error(‘Function:transferBaseNum parameter:tranferArr>>>The elements in an Array must be smaller than 0xff and biger than 0x00‘);
		}
		if(res > basicNum){
			basicNum = res;
		}
	}
	tranferArr.forEach(ergodicFun);
	return basicNum;
}

//生成颜色渐变数组
function getGradientColorArr(colorInNum:uint):Array{
	var outArr:Array = colorValTransfer(colorInNum);
	var basicNum:uint = transferBaseNum(outArr);
	var resArr:Array = [];
	resArr[0] = outArr[0] + outArr[1] * 0x100 + outArr[2] * 0x10000;
	var midleF,midleM,midleE:uint = 0;
	for(var i:int = 1 ; i <=  basicNum ; i++){
		outArr[0] += 1;
		outArr[1] += 1;
		outArr[2] += 1;
		if(outArr[0] >0xff){
			midleF = 0xff;
		}else{
			midleF = outArr[0];
		}

		if(outArr[1] > 0xff ){
			midleM = 0xff;
		}else{
			midleM = outArr[1];
		}

		if(outArr[2] > 0xff){
			midleE = 0xff;
		}else{
			midleE = outArr[2];
		}
		resArr[i] = midleF + midleM * 0x100 + midleE * 0x10000;
	}
	return resArr;
}

var log:Function = function(element:*, index:int, arr:Array):void{
	trace(element.toString(16));
}

getGradientColorArr(0x333333).forEach(log);
时间: 2024-11-10 13:25:25

as3.0 小代码(1)------ 颜色渐变中的颜色渐变数组产生算法的相关文章

iOS开发之0行代码加载NSBundle中的@2x与@3x图片

本文只针对通过NSBundle对象的方法 pathForResource 获取本地图片资源遇到的图片名无法自动识别@2x与@3x名称的问题进行测试.总结与分享. 加载本地图片资源的方式一般通过以下两种方法: 第1种: UIImage *img = [UIImage imageNamed:@"imageName"]; 第2种: UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForRes

as3.0 中对TextField的小封装,使其成为一个还不错的输入框

package myComponent  { import flash.display.Shape; import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFormat; import flash.text.TextLineMetrics; public class MyInput extends Sprite { priva

css3中背景颜色渐变(转)

原文链接:http://caibaojian.com/css3-background-gradient.html 整理一下关于css3背景渐变的写法,至于是怎么来的,可以看下面渐变的详细解释. via在项目中,有很多地方都用到了背景线性渐变.如果在移动端还可以适当使用CSS3这个属性原文来自:http://caibaojian.com/css3-background-gradient.html css3:linear-gradient 比如:黑色渐变到白色,代码如下: .gradient{ ba

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

开放中常用颜色代码

顏色 英文名稱 RGB 16色 顏色 英文名稱 RGB 16色 Snow 255 250 250 #FFFAFA PaleTurquoise1 187 255 255 #BBFFFF GhostWhite 248 248 255 #F8F8FF PaleTurquoise2 174 238 238 #AEEEEE WhiteSmoke 245 245 245 #F5F5F5 PaleTurquoise3 150 205 205 #96CDCD Gainsboro 220 220 220 #DCD

as3.0 TextField中单行文字内容垂直居中

在开头,先首说一下TextField中单行文字空间是怎样的.图如下 从图中可以看到,当为文字设定像素大小时,我们都可以从TextField中的文字空间信息取得两个信息Ascent与Descent,文字空间与边距的2px一般是固定的.所以如果我们想在TextField中单行文字垂直居中的话,可以这样设定TextField的高度为Ascent+Descent+4px.具体在as3.0中的个人实现代码实例如下: package { import fl.controls.Label; import fl

[ActionScript 3.0] flash中的颜色

在 Flash 中,颜色就是一串特殊的数字,一个颜色值可以是0到16,777,215中的任意数值,这就是24位(bit)色彩.也许大家会问,为什么有16,777,216(256*256*256)种颜色值,因为 Flash 使用 RGB 颜色值,意味着每个颜色都可以由红(red),绿(green),蓝(blue)三种颜色构成.这三种合成色的每一种都是一个从0到255中的数,所以,对于每个红黄蓝都有256种可能的深度,结果会有约1,678万种颜色. 这个系统之所以叫做24位颜色是因为要使用8位(0或

java学习中,DVD管理系统纯代码(java 学习中的小记录)

java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星) class DvdMain{ public static void main (String[] args){ DvdMgr dvd = new DvdMgr(); //初始化dvd dvd.initial(); //开始进入切换菜单 dvd.startMenu(); } } 1 class DvdSet { 2 3 //定义三个属性 4 String[] name = new String[50];

AS3.0中的三角函数

以下是一些在AS3.0中常用的三角函数.代码如下: trace (Math.tan(45*Math.PI/180));//已知45度角求正切值; trace (Math.atan(1)*180/Math.PI);//已知正切值为1求出角度; trace (Math.sin(30*Math.PI/180));//已知30度角求正弦值; trace (Math.asin(1/2)*180/Math.PI);//已知正弦值0.5求角度; trace (Math.cos(60*Math.PI/180))