Flex 可变跑道模型

推荐阅读:http://bbs.9ria.com/thread-45497-1-1.html

个人理解:
1.flash宏观上是一帧一帧播放的,微观上是一个时间片一个时间片来执行的

2.帧频和每秒执行的时间片数是两个不同的概念

3.帧频通过stage的frameRate属性设置,而每秒执行的时间片数是根据每个时间片长确定的(一秒除以每个时间片长就得出每秒执行的时间片数)。而每个时间片长是由fp内部控制的,这个数字和平台以及浏览器有关

4.每个时间片长内,fb按照如下顺序执行存在的操作(如果某个操作不存在就不执行):
a player事件调度,比如timer enterframe urlloader等事件
b 对应的事件的监听代码执行
c render事件调度,如果b过程有执行stage.invalidate则会触发这一特殊事件
d 最后的用户代码执行
e player更新显示列表

5.fb执行完上述5个步骤的可以划分成两个阶段,a b c d为代码执行阶段(ab为用户代码 cd为失效操作) e为图像渲染阶段。当执行完这5个步骤时,可以认为fb完成了一圈跑道操作。即一个时间片的操作等同于一个跑道操作

6.fb不一定是执行完代码阶段后就立即做渲染操作的。什么时候执行图像渲染阶段是完全由fb控制的.如果代码执行时间很短,fb可能会暂停一段时间再进入图像渲染阶段

7.fb反复执行时间片的操作,并在运行中决定下一步操作。可以理解为:fb的执行就是不停的做跑道操作,但每次跑道操作的步骤可能不一样,具体下面会说明。

8.fb的每次执行完跑道操作所用时间可能是不一样的,这这个时间是允许大于时间片长的

9.每一帧的时间可能只够执行一次跑道操作,也可能执行多次跑道操作,如果只执行一次跑操作,步骤e必定被会执行。如果执行多次跑道操作,可能前几次跑道操作只有步骤a b 没有e,但最后一次跑道操作中必然有步骤e(也可能是步骤 c d e) (即解释了7条中每次跑道操作的步骤可能不一样)

[color=red]10.flash每一帧必然会有一个完整的跑道操作,即每一帧必然有步骤e[/color]

11.根据第9条,fb做跑道操作的频率必须高于帧频

12.假设时间片长是20ms,那么fb做跑道操作的频率是每秒50次(切割时间片频率),那么帧频最高也只可能是50次,如果设置帧频为60,是没有效果的(即第11条的解释)

12.假设时间片长是20ms,那么fb做跑道操作的频率是每秒50次,根据第8条,跑道操作时间可能超过20ms,那么每秒实际做的跑道操作次数是不到50次的

13.假设时间时长是20ms,对于5fps的swf,每帧可以执行10次跑道操作,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值