[Flash] 定义颜色渐变

作者:Super-Tomato
原文:http://www2.flash8.net/teach/3336.htm

以下是主要代码,要多组颜色变换只要稍微修改即可
在场景上建立一个影片,实例名为mc。然后在第一帧输入以下代码测试

hexConvert = function(hex) { //把10进制颜色分出rgb颜色 
var r = hex >> 16; 
var g = (hex ^ (r << 16)) >> 8; 
var b = (hex ^ (r << 16)) ^ (g << 8); 
return {r:r, g:g, b:b}; 
}; 
colorSpeed = function(colors, limit) { //计算rgb变换的速度 
var v1 = hexConvert(colors[0]); 
var v2 = hexConvert(colors[1]); 
return {r:(v1.r-v2.r)/limit, g:(v1.g-v2.g)/limit, b:(v1.b-v2.b)/limit}; 
} 
MovieClip.prototype.colorTransform = function(rgb) { //颜色渐变事件 
var trans = myColor.getTransform(); 
trans.rb -= rgb.r; 
trans.gb -= rgb.g; 
trans.bb -= rgb.b; 
myColor.setTransform(trans); 
} 
var colorRange = [0x000000, 0xFFFFFF]; //定义颜色 
var myColor = new Color(mc); 
myColor.setRGB(colorRange[0]); 
var limit = 20; //定义颜色变换次数,即20之后达到另外一个颜色 
var range = colorSpeed(colorRange, limit); 
this.onEnterFrame = function() { 
mc.colorTransform(range); 
if(limit-- < 0) delete this.onEnterFrame; 
}

colorRange.swf (893 Bytes)

谢谢分享哦 Y^^