通过代码删除形状

时间:2009-11-17 21:09:40

标签: actionscript-3 shape

这里非常基本的问题,但它仍然让我有点困惑..

我有一个对象(导航菜单栏),我想用代码更改颜色,所以在updateColor函数中,我得到了对象的边界(这是一个包含在movieclip中的绘图形状)并使用新颜色在其上重新绘制一个新形状,但我注意到最后一个形状仍然存在于此重绘之后。

我在重绘之前尝试使用obj.graphics.clear();,但没有摆脱原始形状。还有另一个我忽略的命令吗?

2 个答案:

答案 0 :(得分:1)

除非您在同一图形对象中绘制了要删除的对象,否则清除将无效。您需要删除DisplayObject。

根据您可以做的孩子数量:

obj.removeChildAt(0);

这也会删除您手动放置在舞台上的动画片段/按钮。 如果您要删除要删除的DisplayObject,则只需执行

即可
obj.removeChild(backgroundClip);

请注意,您还可以直接更改DisplayObject的颜色:

import flash.geom.ColorTransform;
...
public var test:MovieClip; //instance on stage
...

var cf:ColorTransform = test.transform.colorTransform;
cf.color = 0xff0000;
test.transform.colorTransform =  cf;

答案 1 :(得分:0)

while(this.numChildren)
{
   this.removeChildAt(0);
}

将清除此MovieClip上的子对象, 如果它清理得太多,则将形状图画放在子剪辑中,然后清除子剪辑。