如何删除动画片段的所有子项?
我试过
while(radar.numChildren > 0){
radar.removeChildAt(0);
}
但这会导致动画片段图形本身被删除。
答案 0 :(得分:2)
如果你只想删除主动画片段(雷达)中的动画片段而不删除形状(图形),你可以这样做:
for (var i : int = radar.numChildren-1 ; i >= 0 ; i--)
{
if(radar.getChildAt(i) is MovieClip)
{
radar.removeChildAt(i);
}
}
答案 1 :(得分:1)
但这会导致动画片段图形本身被删除。
您正在删除其中的所有子DisplayObjects
。您无法删除所有子对象,也不会丢失“图形”。
答案 2 :(得分:0)
function removeChildrenOf(mc:MovieClip):void{
if(my_mc.numChildren!=0){
var k:int = mc.numChildren;
while( k -- )
{
mc.removeChildAt( k );
}
}
}
答案 3 :(得分:0)
我前一段时间写了这个课。它创建了MovieClip内容的位图快照。删除所有子项,然后将Bitmap添加到容器中。这个类/类的原始意图是为您提供重新调整的图像的平滑渲染。在Flash中,如果您在MovieClip中有图像并将其缩小,则位图可能会失去其清晰度。使用BitmapData类的“smoothing”属性(自动设置)可以保留完整性。
您只需在库实例中扩展该类,使用适合您需要的类。
框架(正在进行中) - https://github.com/charlesclements/as3-tools
要引用的类目录 - https://github.com/charlesclements/as3-tools/tree/master/net/charlesclements/gadgets/display
SimpleAutoSmoothMovieClip.as - 这是最容易使用的。该类假设要捕获的所有内容都在(x:0,y:0)注册点内。从那里自动计算宽度。
AutoSmoothMovieClip.as - 这个类期望有一个具有实例名称“gr”的子MovieClip,其中包含要拍摄快照的所有内容。这个“gr”MovieClip将被动态删除。