Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 通过代码删除形状_Actionscript 3_Shape - Fatal编程技术网

Actionscript 3 通过代码删除形状

Actionscript 3 通过代码删除形状,actionscript-3,shape,Actionscript 3,Shape,这是一个非常基本的问题,但它仍然让我有点困惑 我有一个对象(导航菜单栏),我想用代码更改它的颜色,所以在updateColor函数中,我得到对象的边界(它是包含在movieclip中的图形形状),并用新颜色在它上面重新绘制一个新形状,但我注意到最后一个形状仍然存在于这个重新绘制之后 我尝试使用obj.graphics.clear()在重新绘制之前,但这并没有去除原始形状。是否还有另一个我忽略的命令?除非您在同一图形对象中绘制了要删除的对象,否则清除将不起作用。您需要删除DisplayObject

这是一个非常基本的问题,但它仍然让我有点困惑

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


我尝试使用
obj.graphics.clear()在重新绘制之前,但这并没有去除原始形状。是否还有另一个我忽略的命令?

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

根据您可以执行的子项数量:

obj.removeChildAt(0);
这也会删除您手动放置在舞台上的movieclips/按钮。 如果您有要删除的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);
}