1.11. 某段时间重复执行一种操作
问题
我要在单帧里多次执行某个任务
解决办法
在单帧里使用循环语句多次执行某个任务,例如,使用 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播放器就会提示警告。
分享到:
相关推荐
1.11. 某段时间重复执行一种操作 19 1.12. 长时间执行一个任务 20 1.13. 创建可重用代码 22 1.14. 增强代码可重用能力 24 1.15. 从方法中退出 24 1.16. 获得方法的执行结果 25 1.17. 处理错误 26 第二章. 自定义类 ...
16.对于大厅点单增加了一种模式“先结帐再出品”,增加后台参数控制,选择此模式后,大厅点单传单后,需要结帐完吧台才能出品大厅的酒水单。 17.在结帐单中增加一列“单类”,此列值对应关系如下:开房套餐--配送,...
OOP 语言提出一种(或称为协议),以保证对数据进行统一的操作。通常的做法是:程 序和对象数据的交互作用通过一个公开的接口进行,而不直接进行操作。由于把数据封装在 对象中,所以,访问对象中的数据只有一种途径...
到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”。这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组...
2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...