加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:26:55 所属栏目:百科 来源:网络整理
导读:定性 它在FlashPlayer范畴内被定义,是AVM2(ActionScript Virtual Machine)用来解释并运行swf文件的机制、原理。 ? 理解它有什么用? FlashPlayer是swf文件的运行环境和执行引擎。 理解FlashPlayer的机制和原理当然意义重大,着眼于Flex的话,“弹性跑道模

>定性

它在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:你太有才了!

?

>后续言

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读