Actionscript 3 as3删除循环中的子项

Actionscript 3 as3删除循环中的子项,actionscript-3,flash,air,Actionscript 3,Flash,Air,我在使用AdobeAir3.3的FlashCS6中工作,在我将电影剪辑添加到舞台后,删除它们时遇到问题。这是我的密码: for(var i = 0; i<starCount; i++) { star = new newStar(); choiceBoard.addChild(star); star.x = 195; if(i>=1) { star.x = 195 + 90*i; } star.y = 597 }

我在使用AdobeAir3.3的FlashCS6中工作,在我将电影剪辑添加到舞台后,删除它们时遇到问题。这是我的密码:

for(var i = 0; i<starCount; i++)
{
    star = new newStar();
    choiceBoard.addChild(star);
    star.x = 195;
    if(i>=1)
    {
        star.x = 195 + 90*i;
    }
    star.y = 597
}   
for(变量i=0;i=1)
{
星形x=195+90*i;
}
星形y=597
}   
这是我创建的一个函数的一部分,它可以动态添加星形电影剪辑…它可以添加一个电影剪辑,添加间距,添加下一个电影剪辑等。创建完后,如何删除所有星形电影剪辑

我试过:

for(var i = 0; i<starCount; i++)
{
    if(contains(star))
    {
        choiceBoard.removeChild(star);
        trace("removed star");
    }
}
for(var i=0;i
private-var-stars:Array=[];

对于(var i=0;i的星星,它们是choiceBoard的唯一子元素吗?如果是,您可以删除所有子元素,如下所示:

choiceBoard.removeChildren();
或者,您可以将所有星星添加到一个数组中,然后遍历该数组以删除它们:

var starArray:Array = [];

//...

for(var i = 0; i<starCount; i++)
{
    star = new newStar();
    //put the star into the array
    starArray.push(star);
    choiceBoard.addChild(star);
    star.x = 195;
    if(i>=1)
    {
        star.x = 195 + 90*i;
    }
    star.y = 597
} 
var-starArray:Array=[];
//...
对于(变量i=0;i=1)
{
星形x=195+90*i;
}
星形y=597
} 
然后删除:

for(var i = 0; i<starArray.length; i++)
{        
    //remove the star from the display
    choiceBoard.removeChild(starArray[i]);      
    trace("removed star");
}
//clear the array
starArray = [];

for(var i=0;i如果您已将所有星号添加到一个容器中(看起来您使用的是
choiceBoard
),并且该容器中没有其他您想要保留的内容,那么您可以通过以下操作非常简单(快速)地删除它们:

while(choiceBoard.numChildren)
{
    choiceBoard.removeChildAt(0);
}
for(var i = 0; i<starArray.length; i++)
{        
    //remove the star from the display
    choiceBoard.removeChild(starArray[i]);      
    trace("removed star");
}
//clear the array
starArray = [];
while(choiceBoard.numChildren)
{
    choiceBoard.removeChildAt(0);
}