AS3支持 label 了,跳出多层循环可以这样写:
outerLoop: for (var i:int = 0; i < 10; i++) {
for (var j:int = 0; j < 10; j++) {
if ( (i == 8) && (j == 0)) break outerLoop;
trace(10 * i + j);
}
}
for (var j:int = 0; j < 10; j++) {
if ( (i == 8) && (j == 0)) break outerLoop;
trace(10 * i + j);
}
}
AS2 的时候只能多加个变量判断:
var needBreak:Boolean = false;
for (var i:Number = 0; i < 10; i++) {
for (var j:Number = 0; j < 10; j++) {
if ( (i == 8) && (j == 0)) {
needBreak = true;
break;
}
trace(10 * i + j);
}
if(needBreak) break;
}
for (var i:Number = 0; i < 10; i++) {
for (var j:Number = 0; j < 10; j++) {
if ( (i == 8) && (j == 0)) {
needBreak = true;
break;
}
trace(10 * i + j);
}
if(needBreak) break;
}


这个功能我喜欢
action script 3做的真的不错
AS2 版的”label”有误,”if(needBreak) break;”不应该加在for j 里.不然的话 for i 还是会执行到9,而不是像AS3真正的label在 for i 执行到8 时就被break了.
不好意思
是我疏忽了
已经更正
谢谢 frogcjn