我有一个我正在进行的项目的spritesheet,我需要能够改变图像的色调,这样我才能有空间。图像上有一些简单的纹理,但它将以5种不同的颜色显示。我附上了一张图片,看看我在说什么:http://i42.tinypic.com/29443l5.png
我试图在生成的精灵上使用它来达到我想要的效果:
var c:ColorTransform = new ColorTransform();
c.color = 0xf30909;
transform.colorTransform = c;
但我得到的一切都是红色的,而不是我想要的。我正在为AIR构建,因此无法导入包fl.motion.Color(或者至少Flash Builder 4.5没有它)。关于如何达到预期效果的任何想法?感谢。
答案 0 :(得分:6)
只是为了完整...
public function Tint(display:DisplayObject, color:uint) {
display.transform.colorTransform = new ColorTransform(color >> 16 & 0x0000FF / 255, color >> 8 & 0x0000FF / 255, color & 0x0000FF / 255);
}
答案 1 :(得分:3)
color
属性设置偏移量,即它使ColorTransform
为图像添加颜色值。您可能想要使用Multiplier
属性。请参阅ColorTransform documentation。