Egret的TimerEvent.TIMER和Event.ENTER_FRAME的区别

简介: Egret的TimerEvent.TIMER和Event.ENTER_FRAME的区别

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

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

比如间隔多久发射子弹,创建敌机,创建陨石等...


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

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

Event.ENTER_FRAME事件做动画的缺陷

  1,每当想要改变指定的帧速率的时候,我们必须更新基于该帧速率计算速度的所有代码(除非使用基于速度的动画)

  2,Flash运行器不总是能到达指定的帧速率,动画变慢。这种变慢甚至因系统负载而不同,帧速率可能只在短时期下降后恢复到它的正常速率。

  在一般情况中,用稍有差别的速度播放一个动画是可以接受的,但是,当要求精确控制或者可见精度是有影响的时候,我们必须考虑帧速率的缺陷。此时,我们用基于逝去的时间而不是关联于指定帧来计算移动一个移动的距离更合适(即基于速度的动画)


比如物体移动坐标,计算碰撞等


所以如果每一帧都要检测的话,最好使用Event.ENTER_FRAME,否则用TimerEvent.TIMER,Event.ENTER_FRAME的动画代码一般要比基于Timer的等价物更简单和使用较少的内存


目录
相关文章
|
10月前
25 QT - event函数
25 QT - event函数
44 0
|
3月前
(20):event()
(20):event()
|
4月前
|
存储 JavaScript 前端开发
说说你对Event Loop的理解是什么
Event Loop(事件循环)是JavaScript中处理异步操作的一种机制,它帮助我们协调和处理各种任务的执行顺序。
49 0
|
JavaScript
event loop的理解
event loop的理解
|
JavaScript 前端开发 UED
Event详解
Event详解
140 0
|
前端开发 JavaScript
前端|event.target与event.currentTarget的区别
前端|event.target与event.currentTarget的区别
75 0
|
JavaScript 容器
JS Event handler example - event capture and bubble
JS Event handler example - event capture and bubble
122 0
JS Event handler example - event capture and bubble
bubble click event handling
bubble click event handling
51 0
bubble click event handling
SAP BRF+ function mode VS event mode
SAP BRF+ function mode VS event mode
135 0
SAP BRF+ function mode VS event mode