FlashIDE色彩效果面板的秘密

发表评论 阅读评论

美术喜欢调整MC(MovieClip)的属性面板里的色彩效果选项来修改MC的效果.其实Flash IDE里色彩效果面板的所有调整都可以通过 ColorTransform 类实现同样的效果.这样我们就能动态显示美术调好的效果。

色彩效果面板 首先我们可以看到样式里有5个选项:

  • 无:显示原始效果
  • 亮度:方便的调整亮度
  • 色调:除Alpha以外的其它颜色通道的混合
  • 高级:任意颜色通道的混合
  • Alpha:调整透明度

先来看看这些选项对应的代码为:

样式:无
这个是最简单的不写或者用一个空的ColorTransform就行

mc.transform.ColorTransform = new ColorTransform();

样式:亮度
色彩效果面板的亮度选项
注意面板上面数值后面有个百分号(%)表示写入的值要除以100才是下面代码输入的值。

var luminance:Number; // 亮度值,区间[-1, 1]
var multiplier:Number = 1 - Math.abs(luminance);
var offset:Number = luminance > 0 ? luminance * 255 : 0;
new ColorTransform(multiplier, multiplier, multiplier, 1, offset, offset, offset);

样式:色调
色彩效果面板-色调选项
注意面板上面数值后面有个百分号(%)。。

var tone:Number; // 色调值,区间[0, 1]
var red:int; // 红色,区间[0, 255]
var green:int; // 绿色,区间[0, 255]
var blue:int; // 蓝色,区间[0, 255]
var multiplier:Number = 1 - tone;
var redOffset:Number = tone * red;
var greenOffset:Number = tone * green;
var blueOffset:Number = tone * blue;
new ColorTransform(multiplier, multiplier, multiplier, 1,
    redOffset, greenOffset, blueOffset);

样式:高级
色彩效果面板-高级选项 和色调面板一样,依然要注意数值后的百分号(%)。
高级这个最简单了,所有的值都带入ColorTransform的参数里就行了。

new ColorTransform(redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier,
    redOffset, greenOffset, blueOffset, alphaOffset);

样式:Alpha
色彩效果面板-透明度选项 和前面两个面板一样,最后再提醒一次,注意数值后的百分号(%)。
只需调节alphaMultiplier参数。

new ColorTransform(1, 1, 1, alphaMultiplier);

当然也可以使用 DisplayObject.alpha 属性来设置。
每一个选项都对应到不同的代码,如果感觉复杂,一时记不住这么多也没关系,只要先在色调或亮度选项里调整好数字,然后直接切换到高级选项里,这时高级选项里的参数就是刚刚调整好的参数,我们就好直接对应的ColorTransform的各个属性了。看了这里可以想到,原来ColorTransform类就是为色彩面板而生的啊。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
回到顶部