我正在使用Adobe AIR 3.3在Flash CS6中工作,并且在将影片剪辑添加到舞台后无法删除影片剪辑。这是我的代码:
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(var i = 0; i<starCount; i++)
{
if(contains(star))
{
choiceBoard.removeChild(star);
trace("removed star");
}
}
但这只会删除一颗星,无论“starCount”设置为什么。提前谢谢。
答案 0 :(得分:2)
private var stars:Array=[];
for(var i = 0; i<starCount; i++)
{
star = new newStar();
stars.push(star);
choiceBoard.addChild(star);
star.x = 195 + 90*i;
star.y = 597
}
然后尝试
for(var i = 0; i<stars.length; i++)
{
choiceBoard.removeChild(stars[i]);
trace("removed star");
}
答案 1 :(得分:0)
星星他们只是选择的孩子吗?如果是这样,你可以删除所有的孩子:
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
}
然后删除:
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 = [];
答案 2 :(得分:0)
如果您已将所有星星添加到一个容器中(看起来与choiceBoard
一样),并且该容器中没有其他任何内容可以保留,那么您可以非常简单地删除它们(和通过这样做:
while(choiceBoard.numChildren)
{
choiceBoard.removeChildAt(0);
}