在单帧里使用循环语句多次执行某个任务,例如,使用for 语句:
for (var i:int = 0; i < 10; i++) {
// 显示i.的值
TRace(i);
}
使用循环语句可以让你的代码更加简洁。容易阅读和维护。既可以用while 也可以用for 语句,
但是一般for语句比较好用。两个循环语句都能达到相同结果,只是for 语句对于大多数程序员
来说更熟悉些。
原形:
for (initialization; test; update) {
statement body
}
下面的例子输出0到999的数字:
for (var i:int = 0; i < 1000; i++) {
trace(i);
}
trace ("That's the end.");
多个初始值或步进值可以用逗号分开,初始化多个变量var 关键字只需要使用一次,下面的例
子展示了每次i增加1,j减小1,然后输出i和j:
for (var i:int = 0, j:int = 10; i < 10; i++, j--) {
trace("i is " + i);
trace("j is " + j);
}
for 语句还可以嵌套,看下面的例子:
for (var i:int = 1; i <= 3; i++) {
for (var j:int = 1; j <= 2; j++) {
trace(i + " X " + j + " = " + (i * j));
}
}
1 X 1 = 1
1 X 2 = 2
2 X 1 = 2
2 X 2 = 4
3 X 1 = 3
3 X 2 = 6
进行多重嵌套的for语句:
for (var i:int = 1; i <= 3; i++) {
for (var j:int = 1; j <= 3; j++) {
for (var k:int = 1; k <= 3; k++) {
trace(i + " X " + j + " X " + k + " = " + (i * j * k));
}
}
}
许多开发都错误的用for 语句让sprites运动起来; 比如:
for (var i:int = 0; i < 20; i++) {
_sprite.x += 10;
}
上面的代码让sprite 向右移动200 像素,所有的更新都在同一帧完成,会出现两个问题:第一,
场景每帧更新一次,所以只有最后的更新显示在场景中(导致我们看到好像是直接跳过200像素,
而不是20步内慢慢移动过去)。第二,即使场景不停更新,但是for循环只需要几位秒,这样的
动画也太快了。因此正确的做法是把动画放到enterFrame 事件上执行。
再者若循环的代码执行时间超过15秒,Flash播放器就会提示警告。
actionscript3中for循环用法
最新推荐文章于 2021-08-23 09:06:35 发布