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

Flex程序启动过程再探秘: (1)基础知识

发布时间:2020-12-15 00:56:38 所属栏目:百科 来源:网络整理
导读:网络上有些针对标题题目的文章。读下来感觉似乎大概明白些什么,又似乎缺少些什么,不能从头到尾融会贯通。 我尝试从个人的理解出发,做些内容补充和个人解释。 (注:关于标题题目,Adobe官方没有明确资料进行阐述,所以描述的一切内容皆是基于对Flex SDK源

网络上有些针对标题题目的文章。读下来感觉似乎大概明白些什么,又似乎缺少些什么,不能从头到尾融会贯通。

我尝试从个人的理解出发,做些内容补充和个人解释。

(注:关于标题题目,Adobe官方没有明确资料进行阐述,所以描述的一切内容皆是基于对Flex SDK源代码的分析和Flex大牛们的经验引导,需要读者带着一起探讨的态度来读这篇文章)

?

>>讲在前面

???? Flex3和Flex4虽然有不同,但是对于标题题目而言,两者没有区别,所以分析哪种SDK都可以。作者使用Flex4 SDK。

?

一. Flash / FlashPlayer 基础知识

????? 我大胆滴猜测诸公中有很大一部分和我一样没有Flash开发经验。

????? 那么我再次明确一下: Flex就是Flash,没有Flash和FlashPlayer的一些必备知识,想要把Flex框架搞清楚是非常困难的。

????? 那些知识是必须了解和掌握的呢?我们在下面逐一列举和说明。

????? 对于这些知识,我们乍一看不能够透彻了解的话没有关系,随着对后续内容的阐述,返回头来再看这些知识点,就会理解颇深。

?

(1). Flex就是Flash

????????????swf文件是一种规范格式的文件类型。对于FlashPlayer而言,无法分辨出swf文件究竟是Flash开发的,还是Flex开发的。

??????????? 换句话讲,Flex和Flash编译出的swf文件遵守相同的内容格式和组织规则。

??????????? Flex和Flash同根(ActionScriprt)不同株(一个面向逻辑开发者,一个面向动画设计师)。

??????????? 那么Flex和Flash有什么不同呢?

??????????? Flex框架为开发者隐藏了Flash中的开发动画需要的两个重要概念:时间轴和帧。从而使得Flex和Flash看起来有很大不一样。

?????????? 记住:时间轴和帧的概念只是被Flex框架所隐藏,而不是取消。在Flex框架底层,我们看得到时间轴和帧的身影,更确切地说,时间轴和帧是Flex框架的基石。

?????????????????????? 所以没有Flash的相关知识,无法理解和看懂Flex框架源代码。

?

(2).再次认识FlashPlayer对于Flex的意义

??????????? FlashPlayer是Flex程序的运行环境和执行引擎。

??????????? Flex程序的运行依赖于FlashPlayer自身运行特点,需要FlashPlayer原生事件驱动才能执行。

??????????? 所以没有FlashPlayer的相关知识,无法理解和看懂Flex框架源代码。

?

?

(3).时间轴、帧、视觉暂留(人眼的生理特性)

??????????? 光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,是视觉暂留。这就是会动的卡通的基本原理。视觉暂留的时间是0.1秒。

??????????? 如果每间隔0.1秒,我们连续切换一系列内容变化很小的图片,对于人眼而言,看到的这些变化就是连续的,就是动画效果。

??????????? 我们可以简单地认为在自然推移的时间线上(时间轴),线上的每个时点的内容和状态(帧)构成了视觉动画的必备要素。如果这些时点间距足够小(<0.1秒),那么就产生了动画效果。

??????????? Flash是二维矢量的动画的主要工具。

????????????Flex程序也是某种意义上的动画,是由用户操作引起的操作界面的平滑变化。

?

(4).flash.display.MovieClip是什么?

??????????? 百度的解释:movieClip的中文意思是“影片剪辑”,是Flash中的概念,就是一个相对独立的动画片段,当然,这个动画片段也不一定是会运动的,也可以是静止状态的(可以看作是运动的“特殊情形”)。

??????????? movieClip是具有时间轴和帧的对象。不同的帧处于时间轴的不同点上,由FlashPlaye负责按照时间顺序播放各个帧的内容。

??????????? FlashPlayer可以自由控制帧内容的播放,比如让播放头停止在某帧上,或进入下一帧,或跳转到指定帧,或循环播放某个范围的帧。

??????????? Flex框架中使用到了上述前两个功能:

??????????? 让播放头停止在某帧上:stop()函数;

??????????? 让播放头进入下一帧??? :nextFrame()函数;

?

(5).ENTER_FRAME事件

???????????(2)中说过,FlashPlayer自身发出的事件是驱动Flex程序运行的原动力。其中FlashPlayer的ENTER_FRAME事件是非常重要的。

???????????? 对该事件的理解是理解Flex框架的重要的一环。

???????????? 请参考:http://www.voidcn.com/article/p-fmismxji-bdn.html?

?

(6).mx.managers.SystemManager 对象是Flex程序启动的原点

???????????SystemManager继承自movieClip类。

?????????? movieClip具有时间轴和帧。自然SystemManager 对象也具有时间轴和帧。

?????????? 就像大家了解到的那样:Flex程序是由两帧构成的,第一帧用于预加载,第二帧才开始执行我们自己编写的Application代码。

?????????? 这里所说的两帧,指的就是SystemManager 对象携带的两帧。

?
(7).“弹性跑到模型”
??????????? 请参考: http://www.voidcn.com/article/p-pvjsljpy-bdn.html

(编辑:李大同)

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

    推荐文章
      热点阅读