EnterFrame和TimerEvent区别

el/2024/7/13 11:19:25

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

2. 在flex中对enterFrame设置频率 在Application标签中设置frameRate=”",
例如(flex4):

<s:application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" frameRate="20">

3. 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类是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自动降低的影响。


http://www.ngui.cc/el/5432081.html

相关文章

XCode 4.2(4.1)真机调试及生成IPA全攻略

众所周知&#xff0c;在Xcode上开发的程序只能在模拟器中运行&#xff0c;如果要放到真机上则要花费99美金购买开发者证书iDP。这严重阻碍了我等草根开发者探索的脚步。写个小程序&#xff0c;同学间分享一下这个小小的愿望都不能满足&#xff0c;自然不能善罢甘休。 在没有iDP…

AS3老虎机简单原型

http://nickro.org/wp-content/uploads/2012/04/demo.swf

Super用法深透理解

学习AS3以来&#xff0c;Super用法一直有点搞不清&#xff0c;帮助文档里说的也是含糊不清。。 我们看下官方帮助先&#xff1a;“调用方法或构造函数的超类或父版本。在类构造函数体内使用 super() 语句时&#xff0c;该语句将调用构造函数的超类版本。对超类构造函数的调用必…

stage.width|stage.height|stage.stageWidth|stage.stageHeight区别

我们先看下帮助文档里的说明&#xff1a; stage.width&#xff1a;指示显示对象的宽度&#xff0c;以像素为单位。宽度是根据显示对象内容的范围来计算的。如果您设置了 width 属性&#xff0c;则 scaleX 属性会相应调整&#xff0c;如以下代码所示&#xff1a; stage.height&a…

加载动态数据,不同环境判断

加载动态文件时&#xff0c;需添加随机数&#xff0c;独立PLAYER则不需要&#xff0c;只需要添加以下判断即可 if (Capabilities.playerType "StandAlone" || Capabilities.playerType "External") {}else {infoXMLString "?" Math.random(…

Math.round|Math.floor|Math.ceil区别

Math.round(val:Number):Number[静态] 将参数 val 的值向上或向下舍入为最接近的整数并返回该值。&#xff08;即小数点后四舍五入&#xff09; Example: trace(Math.round(4.4))–4 trace(Math.round(4.7))–5 Math.floor(val:Number):Number[静态] 返回由参数 val 指定的数字…

如何配置FlashDevelop软件并支持Flash CS4[转]

FD软件是指FlashDevelop&#xff0c;是学习、开发Flash ActionScript 3.0的有力工具&#xff0c;其最大的特点是超强代码提示、方便的快捷键操作、开源代码模板定制、可扩充的插件功能&#xff0c;无不展示了这是一款优秀的辅助软件&#xff01; 本文紧跟Flash CS4&#xff0c;…

2011年十个值得收藏的Flash博客

2011年十个值得收藏的Flash博客&#xff0c;从效果到优化&#xff0c;从2D到3D&#xff0c;从网络到移动&#xff0c;没收过最好你都收了。 Flash社区创建的内容和演示的数量和质量&#xff0c;不停的带给我们惊奇。在我看来&#xff0c;下面这些网站都是值得称赞的&#xff0c…

Electroserver5 管理工具

----------打开管理工具 管理员可以使用网页或者AIR应用来打开 Electroserver 后台管理界面。 在安装目录的 admin 文件夹下可以找到网页版和AIR版。连接ES5必须在config的xml文件里配置连接设置&#xff0c;设置默认用户名密码。 AIR 版管理工具 双击air程序&#xff0c;可能会…

解决FlashDevelop调试不输出trace信息

下面是方法&#xff1a; 1.打开FD(flashDevelop简称) 2.在菜单栏找 Tools->Program Settings 3.在Plugins框里面找到FlashViewer&#xff0c;然后在右边的External Player Path设置flash player的路径&#xff08;*注意&#xff0c;这个路径是调版的flash player的路径&…