flashplayer 帧执行模型

来源:互联网 发布:网络教育大专报名 编辑:程序博客网 时间:2024/06/09 23:53
flash player 帧执行模型

转载▼孙奎的博客

http://blog.sina.com.cn/as3starts

 

actionscript字节码的执行与图形渲染是完全分离的两个过程。player每播放一帧都是按照:

1.player发出事件,如(TimerMouseFrame);

2.用户代码(actionscript虚拟机以为由开发者写的代码,包括sdk)被执行,执行所有侦听第一步中发出事件的代码。

3.renderer事件被发出,renderer事件的派发是由用户代码调用flash.display.Stageinvalidate()方法引起的,invalidate只是告知player当前显示列表已经失效,不派发renderer事件,而是由player在渲染显示列表之前检查列表是否失效,若失效会在渲染列表之前派发renderer事件,给用户代码最后执行机会。

4.最后的用户代码被执行,侦听第三步的renderer时间的代码在此处执行。在此阶段调用flash.display.Stageinvalidate()不会被触发。

5.player渲染最新的显示列表,这是一黑箱,开发者无法控制。


有人把player看成一个弹性的跑道,执行代码和渲染图形是跑道上的两个阶段。正常情况下player会按照fps去执行每一帧,当某一帧执行代码和渲染图形用时超过了fps设定的时间,那么执行一帧的时间就会超过fps设定的时间,如同弹性跑道发生了变形。所以,swf中设定的pfs是期望的最多帧速率,实际的会小于或等于fps

 


0 0
原创粉丝点击