2009-11-17 49 views
2

非常基本的问题在这里,但它仍然让我很困惑..通过代码删除形状

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

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

回答

0

除非您在同一图形对象中绘制了想要删除的对象,否则清除将不起作用。您需要删除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; 
0
while(this.numChildren) 
{ 
    this.removeChildAt(0); 
} 

将清除的孩子如果它清除太多,则将该形状图放入子剪辑中,并清除子剪辑。