As3中的Timer和Event.EnterFrame是有明显的区别的。

Evnet.EnterFrame是定时间隔多少时间出发。如果执行时间比间隔时间长,则会间隔执行时间这么久。

举个例子: Flash的stage.FrameRate设置为 25即,Event.EnterFrame的出发间隔为40ms,如果Event.EnterFrame的执行函数花费时间为25ms,那么Event.EnterFrame将以间隔40ms的恒定频率运行。

Timer就不一样了,Timer的参数就可以看出来,是delay多少时间,意思是当一个函数执行完成后再Delay多久。

举例: Timer 设置为 间隔40ms,而Timer的函数运行花费25ms,那么,Timer将以65ms的间隔恒定运行。

Timer类是ActionScript3.0新增的, 来代替早期的setInterval()和setTimeout()函数。
当创建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自动降低的影响。

最新文章

  1. Mac OS 系统工具使用
  2. Entity Framework 出现 "此 ObjectContext 实例已释放,不可再用于需要连接的操作" 的错误
  3. scala中的抽象类
  4. VMware-WorkStation 序列号(转)
  5. linux内核SPI总线驱动分析(二)(转)
  6. System.Data.SQLite数据库简介
  7. 深入理解计算机系统第二版习题解答CSAPP 2.17
  8. Python的安装和详细配置(转)
  9. D3.js:交互式操作
  10. [编织消息框架][设计协议]opCode
  11. ASP.NET MVC one view bind many model
  12. (转)Spring Boot(十七):使用 Spring Boot 上传文件
  13. Slave_SQL_Running:No的两种解决办法
  14. [转]QT子线程与主线程的信号槽通信-亲测可用!
  15. Apache提供的dbUtils
  16. Mysql 索引 n-gram分词引擎使用
  17. mysql delimiter的说明
  18. java8新特性(六):Stream多线程并行数据处理
  19. Class.getResourceAsStream 和 ClassLoder.getResourceAsStream 的区别
  20. Zabbix漏洞汇总

热门文章

  1. Java中自定义异常
  2. CodeForces 651B Beautiful Paintings 贪心
  3. UVA 10341 Solve It 二分
  4. Runtime运行时的那点事儿
  5. js获取鼠标位置
  6. 【leetcode❤python】 205. Isomorphic Strings
  7. [转]What you need to know about transimpedance amplifiers – part 1
  8. day20 FORM补充(随时更新),F/Q操作,model之多对多,django中间件,缓存,信号
  9. C# 创建一个日志文件
  10. CSS笔记(五)字体