官方的文档说:
必须使用新的ColorTransform()构造函数来创建ColorTransform对象,然后才能调用ColorTransform对象的方法。
所以,这是否意味着每次我想要调整颜色转换,我必须创建一个新的实例?如果是这样的话,setter属性看起来是毫无意义的,我的测试表明是这样的。
因此,如果我想要循环的每个呈现,比如基于时间的redOffset (为了获得脉冲效果),是否必须手动创建一个新的ColorTransform,从this.transform.colorTransform传递所有构造函数args
var newRedOffset:Number = ...
transform.colorTransform = new ColorTransform(
transform.colorTransform.redMultiplier, transform.colorTransform.greenMultiplier,
transform.colorTransform.blueMultiplier, transform.colorTransform.alphaMultiplier,
newRedOffset, transform.colorTransform.greenOffset,
transform.colorTransform.blueOffset, transform.colorTransform.alphaOffset );看起来很可怕,有捷径吗?
发布于 2011-01-17 00:52:48
这里有一种简单、直接的方法来改变显示对象的颜色,而不是处理颜色乘数和alpha偏移:
var ct:ColorTransform = new ColorTransform();
ct.color = 0xFF0000; //Simple Hex Color value
myDisplayObject.transform.colorTransform = ct;通过这种方式,您可以更改同一个ColorTransform对象的颜色属性,然后将其重新应用于显示对象。
发布于 2011-01-17 00:54:01
不,它没有。您可以使用对象已经拥有的colorTransform,但是您需要在更改了值之后重新分配它:
var trans:ColorTransform = sprite.transform.colorTransform;
trans.blueOffset += 10;
sprite.transform.colorTransform = trans;https://stackoverflow.com/questions/4708949
复制相似问题