好的,我有这个矢量形状:
my_shape.graphics.lineStyle(1, 0x00FF00, 1);
my_shape.graphics.moveTo(30, 38);
my_shape.graphics.lineTo(7, 38);
my_shape.graphics.curveTo(-1, 38, -1, 36);
my_shape.graphics.lineTo(-1, 3);
my_shape.graphics.curveTo(-1, -1, 3, -1);
my_shape.graphics.lineTo(35, -1);
my_shape.graphics.curveTo(39, -1, 39, 3);
my_shape.graphics.lineTo(39, 30);
由于我无法找到如何更改现有形状的颜色,我只使用颜色差异创建其中3种颜色,是否可以更改现有形状的颜色?
是否可以在其他类中使用相同的形状?或者我必须再次创建它?
if(ability3.Locked == true && Ability.suma >= 5){
ability3.Locked = false;
ability3.addChild(my_shape);
ability4.Locked = false;
ability4.addChild(my_shapea);
ability5.Locked = false;
ability5.addChild(my_shapeb);
}
if(ability6.Locked == true && Ability.suma >= 10){
ability6.Locked = false;
ability6.addChild(my_shapeb);
ability7.Locked = false;
ability7.addChild(my_shapea);
ability8.Locked = false;
ability8.addChild(my_shape);
ability9.Locked = false;
ability9.addChild(my_shape);
}
当第一个代码(能力3到5)运行所有3个孩子显示但是当涉及到运行其他如果命令能力6到9得到他们的孩子但3到5得到他们被移除..我可以使用多次相同形状
我希望你明白我的意思xD 感谢。
答案 0 :(得分:1)
显示对象一次只能位于单个显示列表中。这意味着如果我执行以下操作:
container1.addChild(my_shape);
container2.addChild(my_shape);
my_shape
将以container2
通常情况下,你会为这个特定形状创建一个类并根据需要进行实例化,但从你的代码判断,我不确定你是否正在使用OOP(如果我'我错了,我会更新我的答案)。
话虽如此,您总是可以使用您选择的颜色编写一个能够创建所需形状的功能:
function createShape(color:uint):Shape
{
var shape:Shape = new Shape();
shape.graphics.lineStyle(1, color, 1);
shape.graphics.moveTo(30, 38);
shape.graphics.lineTo(7, 38);
shape.graphics.curveTo(-1, 38, -1, 36);
shape.graphics.lineTo(-1, 3);
shape.graphics.curveTo(-1, -1, 3, -1);
shape.graphics.lineTo(35, -1);
shape.graphics.curveTo(39, -1, 39, 3);
shape.graphics.lineTo(39, 30);
return shape;
}
现在,只要需要创建形状,就可以调用该函数:
if(ability3.Locked == true && Ability.suma >= 5){
ability3.Locked = false;
ability3.addChild(createShape(someColor));
ability4.Locked = false;
ability4.addChild(createShape(someOtherColor));
ability5.Locked = false;
ability5.addChild(createShape(anotherColor));
}
其中someColor
,someOtherColor
和anotherColor
各自代表不同的uint
(颜色)。
答案 1 :(得分:1)
以下是将图形从一个对象复制到另一个对象并更改其颜色的示例:
var newShape:Shape = new Shape();
newShape.graphics.copyFrom(my_shape.graphics);
var colorTrans:ColorTransform = new ColorTransform();
colorTrans.color = 0xFFFFFF;
newShape.transform.colorTransform = colorTrans;