这里非常基本的问题,但它仍然让我有点困惑..
我有一个对象(导航菜单栏),我想用代码更改颜色,所以在updateColor
函数中,我得到了对象的边界(这是一个包含在movieclip中的绘图形状)并使用新颜色在其上重新绘制一个新形状,但我注意到最后一个形状仍然存在于此重绘之后。
我在重绘之前尝试使用obj.graphics.clear();
,但没有摆脱原始形状。还有另一个我忽略的命令吗?
答案 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上的子对象, 如果它清理得太多,则将形状图画放在子剪辑中,然后清除子剪辑。