`
lixinye0123
  • 浏览: 323356 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

1.11. 某段时间重复执行一种操作

阅读更多

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播放器就会提示警告。 

分享到:
评论

相关推荐

    actionscript cook book 中文版

    1.11. 某段时间重复执行一种操作 19 1.12. 长时间执行一个任务 20 1.13. 创建可重用代码 22 1.14. 增强代码可重用能力 24 1.15. 从方法中退出 24 1.16. 获得方法的执行结果 25 1.17. 处理错误 26 第二章. 自定义类 ...

    视易神通夜总会5.0安装包

    16.对于大厅点单增加了一种模式“先结帐再出品”,增加后台参数控制,选择此模式后,大厅点单传单后,需要结帐完吧台才能出品大厅的酒水单。 17.在结帐单中增加一列“单类”,此列值对应关系如下:开房套餐--配送,...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    OOP 语言提出一种(或称为协议),以保证对数据进行统一的操作。通常的做法是:程 序和对象数据的交互作用通过一个公开的接口进行,而不直接进行操作。由于把数据封装在 对象中,所以,访问对象中的数据只有一种途径...

    你必须知道的495个C语言问题

    到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”。这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组...

    《你必须知道的495个C语言问题》

    2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 30 枚举 31 2.23 枚举和一组预处理的#define有什么不同? 31 2.24 枚举可移植吗? 31 2.25 有什么显示枚举值符号的容易方法吗? 31 位域 31 2.26 ...

    C#程序开发范例宝典(第2版).part08

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#程序开发范例宝典(第2版).part13

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#程序开发范例宝典(第2版).part02

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    C#程序开发范例宝典(第2版).part12

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

Global site tag (gtag.js) - Google Analytics