Actionscript 3 actionscript 3删除或停止循环

Actionscript 3 actionscript 3删除或停止循环,actionscript-3,actionscript,for-loop,Actionscript 3,Actionscript,For Loop,这是我代码的一部分: private var sun:Sun; private var aantalSun:int = 5; private var counter:int; for (counter = 0; counter < aantalSun; counter++) { sun = new Sun(); addChild(sun); } private-var-sun:sun; 私有变量aantalSun:int=5; 专用var计数器:int; 用于(计数器=

这是我代码的一部分:

private var sun:Sun;
private var aantalSun:int = 5;
private var counter:int;

for (counter = 0; counter < aantalSun; counter++)
{
    sun = new Sun();
    addChild(sun);
}
private-var-sun:sun;
私有变量aantalSun:int=5;
专用var计数器:int;
用于(计数器=0;计数器
当整个代码运行时,舞台上有一个叫做“菜单”的按钮。 当我点击那个按钮,我想回到我的主菜单,但我的舞台上仍然有5个太阳。 单击菜单按钮时,如何删除5个太阳(例如,停止循环?)?
我已经试过removeChild(sun);,但是只有一个太阳消失了。

停止循环,用break命令退出循环; 因此,如果你有一个条件,你可以像var menuClicked一样检查,你可以让liek这样:

for (counter = 0; counter < aantalSun; counter++)
{
 if(menuClicked) break;
 sun = new Sun();
 addChild(sun);
}
for(计数器=0;计数器
实际上,5次迭代的循环将完成得如此之快,以至于按下按钮时无法退出循环

我所理解的是,当按下按钮时,您希望删除添加的5个太阳

我的建议是创建你5个太阳的父母,并将其添加到其中,然后删除你的父母,这样所有5个孩子都将被删除。无需维护5个child引用,您只需维护一个父引用。

将“sun”存储在一个数组中,并通过此循环删除所有sun:

private var sun:Sun;   
private var aantalSun:int = 5;   
private var counter:int;
private var sunArray:Array = new Array();

for (counter = 0; counter < aantalSun; counter++) { 
    sun = new Sun();
    sunArray.push(sun);
    addChild(sun); 
} 

function RemoveSuns() {
    for (var i:int = 0; i < sunArray.length; i++) { 
        removeChild(sunArray[i]);
    } 
}
private-var-sun:sun;
私有变量aantalSun:int=5;
专用var计数器:int;
private-var sunArray:Array=new-Array();
对于(计数器=0;计数器
删除所有:

function RemoveAll() {
    for(var i:int = 0; i < this.numChildren; i++) {
        this.removeChildAt(i);
    }
}
函数RemoveAll(){
for(var i:int=0;i
以下是您需要的(底部的函数)以及对原始发布代码的小改动

private var sun:Sun;
private var aantalSun:int = 5;
private var counter:int;

private var sunContainer:Sprite = new Sprite();
addChild(sunContainer);

for (counter = 0; counter < aantalSun; counter++)
{
    sun = new Sun();
    sunContainer.addChild(sun);
}




//function for clearing all suns
function clearSuns(e:Event = null):void {
    var i:int = sunContainer.numChildren;
    while(i--){
        sunContainer.removeChildAt(i);
    }
}
private-var-sun:sun;
私有变量aantalSun:int=5;
专用var计数器:int;
private-var-suncainer:Sprite=new-Sprite();
addChild(suncainer);
用于(计数器=0;计数器
您也可以选择在添加子元素时将其存储在数组中,并以几乎相同的方式删除它们。是@AmyBlankenship,但维护数组需要位代码和时间。如果我们使用父级,那么我们总是可以访问它的元素,并且在不需要时可以删除。您仍然需要额外的代码来添加和引用父级。我认为大致相同,尽管我发现很多人不“在集合中思考”