再说FlashPlayer的“弹性跑道模型”

本文深入探讨了FlashPlayer的内部工作机制,通过'弹性跑道模型'的概念,解释了其如何高效处理和渲染swf文件,确保在有限时间内提供流畅的用户体验。重点在于理解时间片、帧处理和渲染过程,以及FlashPlayer如何利用视觉暂留效应优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>定性

它在FlashPlayer范畴内被定义,是AVM2(ActionScript Virtual Machine)用来解释并运行swf文件的机制、原理。

 

>理解它有什么用?

FlashPlayer是swf文件的运行环境和执行引擎。

理解FlashPlayer的机制和原理当然意义重大,着眼于Flex的话,“弹性跑道模型”是理解Flex程序生命周期和组件架构的重要基础。

 

>“弹性跑道模型”不是Adobe官方给出的说法

技术是有价值的,核心技术更是如此。

FlashPlayer不开放源代码,属于Adobe公司私有财产。出于各种商业目的,并不开放FlashPlayer的原理和核心技术,自然,对“弹性跑道”的解释也是非官方的技术专家们的个人定义和分析。

类似能够提出“弹性跑道模型”概念的人都是技术大牛中的大牛,这些概念经过广为传播和不断被验证,我们有理由相信:它是正确的概念。

反正我是信了。

 

>什么是“弹性跑道模型”?

大家在搜索引擎上查找关键字“flashplayer 弹性跑道”,有很多文章在解释它。

这里不再重复

在对其有一些理解之后,我尝试说明这个概念:

 

FlashPlayer拿着播放头行走在时间轴之上,沿途处理很多事情,路过一帧又一帧。

每当一帧即将走完,FlashPlayer就要做些总结性工作(一次性地汇总变化),把这一帧当中发生的变化拿出来展示(渲染)一下。

如果它处理的事情少,工作轻松,那么它行走的速度是均匀的,也就是说走过每一帧花费的时间都基本相同。

如果某一帧的沿途中处理的事情很多,很麻烦,那么花在其上的时间就会变长。

如果某一帧的展示(渲染)工作很沉重,那么花在其上的事件也会变长。

于是乎,走过不同帧所花费的时间将变得不再相同。

 

FlashPlayer在路上做着反复性的工作,就像田径“跑道”那样,周而复始。每一帧的路途就是一圈轮回。

而每一圈花费的时间不同,如果用时间来度量跑道,这个跑道就像具有“弹性”,某段路(沿途处理事件或渲染)会拉长。

 

你看,FlashPlayer很聪明:

他知道通常帧和帧之间的时间距离很短,只有1/24秒(FlashPlayer默认桢频是24)。对于计算机来说这点时间长的真是长的不得了,而对于人类而言,人眼对于1/24秒内发生的变化都会“视而不见”(人眼的视觉暂留特点)。

于是FlashPlayer有效率地安排了自己的工作,在1/24秒(每帧)快结束之前发生的若干次变化就让它变化去吧,只有1/24秒(每帧)快结束的档口才一次性地把期间发生

的变化进行汇总,然后渲染到屏幕上,让人眼看到变化。

要知道1/24秒的时间足够CPU进行上亿次的计算。所以让我们称赞一下FlashPlayer:你太有才了!

 

>后续言

“弹性跑道模型”的文章中涉及到其他很多概念,比如“时间片”等。

我认为上述内容是主干,其它都是围绕其周围的衍生概念。

知识是被研究和发掘出来的,一家之言定有不足之处。

“弹性跑道模型”是非常重要的概念,我等应该更多去琢磨它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值