作者: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)