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,但维护数组需要位代码和时间。如果我们使用父级,那么我们总是可以访问它的元素,并且在不需要时可以删除。您仍然需要额外的代码来添加和引用父级。我认为大致相同,尽管我发现很多人不“在集合中思考”