我有这段代码
public function TalentBox(x:int, y:int, arg_color:int = 0xFFFFFF):void
{
this.graphics.beginFill(arg_color);
this.graphics.lineStyle(1.0, 0x000000, 0.7);
this.graphics.drawRect(0, 0, 7, 13);
this.alpha = 1.0;
this.x = x;
this.y = y;
this.graphics.endFill();
}
我构造类(从sprite扩展)。然后我需要一个改变精灵颜色的函数。目前我有这个
public function setColor(arg_color:int):void
{
color = arg_color;
this.graphics.beginFill(color);
this.graphics.drawRect(0, 0, 7, 13);
this.graphics.endFill();
}
它似乎有效,但这是创造一个新的矩形。我不想要的。
我尝试过ColorTransform,这会改变一切,甚至边界,这不是我想要的。而且我无法进行colortransform然后设置边框颜色。
那么如何在不改变边框颜色的情况下更改精灵的颜色呢?
答案 0 :(得分:0)
我找到了答案。
你在课堂上创建了两个精灵。身体和边界。单独设置,然后仅使用body sprite转换颜色。
这是修改后的构造函数
public function TalentBox(x:int, y:int, arg_color:int = 0xFFFFFF):void
{
body.graphics.beginFill(arg_color);
body.graphics.drawRect(x + 1, y + 1, 6, 12);
body.graphics.endFill();
border.graphics.beginFill(0xFFFFFF);
border.graphics.lineStyle(1.0, 0x000000, 0.7);
border.graphics.drawRect(x, y, 7, 13);
border.graphics.endFill();
this.addChild(border);
this.addChild(body);
}