制作一个movieclip删除所有的孩子

时间:2011-09-12 06:12:51

标签: actionscript-3

如何删除动画片段的所有子项?

我试过

while(radar.numChildren > 0){
    radar.removeChildAt(0);
}

但这会导致动画片段图形本身被删除。

4 个答案:

答案 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 );
        }
    }
}

reference

答案 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将被动态删除。