非常基本的问题在这里,但它仍然让我很困惑..通过代码删除形状
我有一个对象(导航菜单栏),我想改变的代码的颜色,所以在updateColor
函数,我得到了对象的边界(这是一个包含在动画片段中的绘图形状),并用新颜色重新绘制了一个新形状,但是我注意到最后一个形状仍然存在于此重绘之后。
我试图在重绘之前使用obj.graphics.clear();
,但没有摆脱原来的形状。是否有另一个我忽略的命令?
非常基本的问题在这里,但它仍然让我很困惑..通过代码删除形状
我有一个对象(导航菜单栏),我想改变的代码的颜色,所以在updateColor
函数,我得到了对象的边界(这是一个包含在动画片段中的绘图形状),并用新颜色重新绘制了一个新形状,但是我注意到最后一个形状仍然存在于此重绘之后。
我试图在重绘之前使用obj.graphics.clear();
,但没有摆脱原来的形状。是否有另一个我忽略的命令?
除非您在同一图形对象中绘制了想要删除的对象,否则清除将不起作用。您需要删除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;
while(this.numChildren)
{
this.removeChildAt(0);
}
将清除的孩子如果它清除太多,则将该形状图放入子剪辑中,并清除子剪辑。