调整ColorTransform对象

时间:2011-01-16 23:58:16

标签: flex flash actionscript-3

官方docs说:

  

您必须使用新的ColorTransform()   构造函数来创建ColorTransform   对象之前可以调用方法   ColorTransform对象。

这是否意味着每个时间我想调整颜色转换,我必须创建一个新实例?如果是这样,那么setter属性似乎毫无意义,我的测试表明情况就是这样。

因此,如果我想要循环的每个渲染都基于时间说redOffset(以获得脉冲效果),我是否必须手动创建一个新的ColorTransform从{{1传递所有构造函数args }}:

this.transform.colorTransform

看起来很可怕,有没有捷径?

2 个答案:

答案 0 :(得分:2)

而不是处理颜色乘数和alpha偏移,这是一种简单,直接的方式来改变显示对象的颜色:

var ct:ColorTransform = new ColorTransform();
ct.color = 0xFF0000; //Simple Hex Color value

myDisplayObject.transform.colorTransform = ct;

这样您就可以更改同一ColorTransform对象的color属性,然后将其重新应用到显示对象。

答案 1 :(得分:2)

不,它没有。您可以使用已有对象的colorTransform,但是在更改值后需要重新分配它:

var trans:ColorTransform = sprite.transform.colorTransform;
trans.blueOffset += 10;
sprite.transform.colorTransform = trans;