关于Flash Player的“跑道/切片模型”
http://swfever.com/?p=1076 在早前的一篇文章中我曾经提到过:“Flash Player的“跑道”模型最早由Ted Patrick提出,而Sean Christmann将这个理论进一步扩展成了“切片”模型,但是我对这个模型的结论抱有很大的质疑,这个模型和我的实验结果有很大的出入,有时间我会专门来撰写文章和大家分享讨论。” 正巧最近天地会论坛上有一篇针对切片模型的翻译,我借机将我的质疑提出来,并引发了一些讨论。我的质疑主要针对于原文中的以下论述:
根据我的实验结果,调用updateAfterEvent()会触发RENDER事件并进行实际的重绘,但并不会造成“当前帧结束并开始下一帧”。也就是说,你可以在同一帧之内,多次触发RENDER事件及其关联的处理函数,并对对屏幕进行多次重绘,并不会对帧进行“打断”。进一步来说,原文中的模型所基于“用户事件代码可以执行多次,而渲染事件代码和真正的渲染操作只在最后一个Slice执行”的假设并不成立,或者说,该假设只能说明某种情况,而不绝对成立。 为此,我特地咨询了我的同事,也是“跑道”模型的最初提出者Ted。他非常迅速的给了我回复,内容如下:
翻译如下:
至此,我想这一问题应该是比较清晰了,跑道模型并不绝对,由于updateAfterEvent和Flash Player内部强制重绘需求的存在,我们可以在一帧的用户代码时间插入渲染事件代码,并进行多次重绘。也就是说,在一帧中,用户代码并不总是先于渲染代码而执行,它们是有可能交替进行的。 另外,Ted还提到:
翻译:
的确,如果能够实现完整的渲染控制,将会给开发者对性能优化带来更大的提升空间~。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |