加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex as3 某段时间重复执行一种操作

发布时间:2020-12-15 05:14:42 所属栏目:百科 来源:网络整理
导读:? 某段时间重复执行一种操作 ? 问题 我要在单帧里多次执行某个任务 解决办法 在单帧里使用循环语句多次执行某个任务,例如,使用 for 语句: for (var i:int = 0; i 10; i++) { ? // 显示i.的值 ? TRace(i); } 讨论 ? 使用循环语句可以让你的代码更加简洁。
?

某段时间重复执行一种操作
?
问题
我要在单帧里多次执行某个任务
解决办法
在单帧里使用循环语句多次执行某个任务,例如,使用 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播放器就会提示警告。?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读