flash代码改变元件亮度、色调、高级、透明度的方法

通过Color类来改变影片颜色
亮度:(设置影片明暗效果)
import com.common.motion.Color;//继承ColorTransform
var color:Color = new Color();
color.brightness = [-1,1]        //-1~1是取值范围
mc.transform.colorTransform = color;        //mc是影片剪辑的名字

色调:(改变影片颜色)
有四个值:色调百分比,red、green、blue值
import com.common.motion.Color;
var color:Color = new Color();
color.setTint(0x808080,1);     //第一个参数是tintColor  RGB值,第二个参数是tintMultiplier 着色百分比,取值范围0到1。
mc.transform.colorTransform = color;

注:十六进制转十进制 trace(0x808080);   也可以用0x80 高位的8乘以16 再加上低位的值
      十进制转十六进制 trace((128).toString(16));   也可以用128除以16取得高位值,余数为低位值。  
      //128只是个参考,R、G、B各分量的十进制值分别是0~255中的任意数。

高级:(改变影片颜色的另一种方式)
import com.common.motion.Color;
var color:Color = new Color(redMultiplier:Number = 1.0, greenMultiplier:Number = 1.0, blueMultiplier:Number = 1.0, alphaMultiplier:Number = 1.0, redOffset:Number = 0, greenOffset:Number = 0, blueOffset:Number = 0, alphaOffset:Number = 0);
有八个参数,分别是ARGB各分量的填充百分比,取值0~1.,后四个是ARGB各分量的偏移量,取值-255~255。
mc.transform.colorTransform = color;

Alpha值:(改变影片透明度)
mc.alpha = 1;   //取值0~1;

通过ColorTransform类来改变影片颜色值。
import flash.geom.ColorTransform;
var colorInfo:ColorTransform = new ColorTransform();
colorInfo.color = 0x808080;
mc.transform.colorTransform = colorInfo;

当 ColorTransform 对象应用于显示对象时,将按如下方法为每个颜色通道计算新值:

新红色值 = (旧红色值 * redMultiplier) + redOffset
新绿色值 = (旧绿色值 * greenMultiplier) + greenOffset
新蓝色值 = (旧蓝色值 * blueMultiplier) + blueOffset
新 Alpha 值 = (旧 Alpha 值 * alphaMultiplier) + alphaOffset
如果计算后任何一个颜色通道值大于 255,则该值将被设置为 255。 如果该值小于 0,它将被设置为 0。

可以通过下列方式使用 ColorTransform 对象:

在 BitmapData 类的 colorTransform() 方法的 colorTransform 参数中
作为 Transform 对象(此对象可以用作显示对象的 transform 属性)的 colorTransform 属性

注:必须使用 new ColorTransform() 构造函数创建 ColorTransform 对象后,才能调用 ColorTransform 对象的方法。

颜色转换不会应用于影片剪辑(如加载的 SWF 对象)的背景色, 它们仅应用于附加到影片剪辑的图形和元件。

发表评论

您必须登录才能发表评论!