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

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

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

(注:关于标题题目,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://blog.csdn.net/tiangej/article/details/7217756 

 

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

           SystemManager继承自movieClip类。

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

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

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

 
(7).“弹性跑到模型”
            请参考: http://blog.csdn.net/tiangej/article/details/7220683
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值