EnterFrame和Timer区别

1. enterFrame是一个由播放器发布的事件,每过(1/帧频)秒向全部继承自DisplayObject的对象发送。
在这个事件之前正好是屏幕的一次固定刷新。(即两次更新的时间间隔为(1/帧频)秒)

2. 假设 Flash的舞台的帧频stage.FrameRate设置为25帧/秒,即每帧运行时间是1000ms/25帧,即1帧占40毫秒。Event.EnterFrame的出发间隔为40ms,如果Event.EnterFrame的执行函数花费时间为25ms,那么Event.EnterFrame将以间隔40ms的恒定频率循环执行函数。 

3.Timer就不一样了,Timer 设置为间隔40ms,而Timer的函数运行花费25ms,那么,Timer将以65ms的间隔恒定运行,可设置循环运行次数。

4. enterFrame和timerEvent区别:
as3中的Timer和Event.EnterFrame是有明显的区别的。
Evnet.EnterFrame是定时间隔多少时间出发。如果执行时间比间隔时间长,则会间隔执行时间这么久。
举例: Flash的stage.FrameRate设置为25,即Event.EnterFrame的出发间隔为1000ms*1/25ms==40ms,
如果Event.EnterFrame的执行函数花费时间为25ms,但Event.EnterFrame也将以间隔40ms的恒定频率运行。
Timer就不一样了,Timer的参数delay就可以看出来,是delay(延迟)多少时间,意思是当一个函数执行完成后再delay多久。
举例: Timer设置为间隔40ms,而Timer的函数运行花费25ms,那么,Timer将以40ms+25ms==65ms的间隔恒定运行。
当创建Timer类的实例时,它会在每个时间间隔激活timer事件,你可以在事件之间指定延时,
然后就有足够的时间去激活Timer构造器了:
var timer:Timer = new Timer(delay, repeatCount);
使用addEventListener来设置一个函数处理这个事件,然后使用timer的start()方法启动或stop()停止它。

使用场合:
1,EnterFrame是恒定的,稳定的,比较适合用来更新渲染画面,如Tween。 但不适合做异步计算和处理, 如果能保证cpu每帧的计算效率在40ms以内,可以把计算放到enterframe时序中,这样可以稳定25fps,当然,这不包括渲染损耗。

2,Timer在100ms的倍数是很稳定的,pc和mac都能稳定,非100的倍数的值会有两个相差不大的值交替出现。

3,EnterFrame在12、20、30fps都比25fps更稳定,25fps会有两个相差不到大的数值交替出现。

4,EnterFrame在计算时优于Timer。

5,Timer更适合使用异步的长周期来改变数据的状态,并不适合短时间持续更新数据,或是渲染画面。

6,EnterFrame和Timer同样受到非活动创口的fps自动降低的影响。


转载http://www.cnblogs.com/atong/archive/2013/02/21/2921372.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值