您的位置:首页 > 其它

Flex环境中“帧”的概念以及应用

2012-02-20 16:49 447 查看
“帧”是Flash的重要概念,是开发逐帧动画的基础。

使用Adobe的Flash IDE可以轻松地在时间轴上添加任意数量的关键帧,开发出多帧的swf。

Flex的本质就是Flash,可是你在Flex的书籍资料中有见过“帧”的字样吗?

几乎没有吧。

为什么?

基于Flex框架开发出的swf是只有两帧的电影剪辑(MovieClip)。

该MovieClip就是Flex中的SystemManager这个类。

SystemManager是启动类(文档类)。

我们知道,启动类(文档类)的构造函数会被FlashPlayer自动调用,因此SystemManager的构造函数就是Flex应用程序生命的起点。

SystemManager的第一帧放置了轻量的代码,用来实现下载进度监控(预加载),显示进度条,同时显示下载进度。

第二帧放置了重量级的代码,也就是我们使用FlexBuilder开发的Application和各种资源(图片等)。

SystemManager的构造函数中,首先用Stop()函数控制FlashPlayer播放器将播放头停留到在第一帧,然后动态化出进度条,并设置事件监听器用来监听swf文件的现在进度。

当下载完成后,SystemManager用NextFrame()函数控制播放头移动到第二帧,同时通过AS3的反射函数getDefinitionByName()动态生成Application类的实例。于是我们的Application开始执行构造函数,一切就此展开。

基于Flex框架开发出的swf是只有两帧的电影剪辑(MovieClip)。

我们使用FlexBuilder开发的Application和各种资源(图片等)只存在于MovieClip的第二帧。

Flex虽然也是基于帧的应用,但是Flex框架(SystemManager)隐藏了“帧”。

也就是说,对于Flex开发者而言,并不需要像开发Flash那样时刻关注“帧”,屏蔽了“帧”的概念,更有利于不熟悉Flash的开发者快速了解Flex的常规开发方法。

反过来,缺乏对Flex本质(Flex就是Flash)的认识,缺乏对Flex生命起源(SystemManager)的认识,缺乏对Flex组件生命周期的认识(该概念将在其他文章中说明),那么对于Flex,我们只能是“知其然,不知其所以然”。无法开发出高效的Flex程序,无法有效地扩展Flex(自定义组件,优化代码)。

开发RIA的各种开发语言、技术中,“帧”的概念是Flash(Flex)特有的,这有别于Silverlight、HTML5等。

该特点将被应用在特殊用途,使得在与同类技术的竞争中获得优势。

说HTML5是未来,Flex只有5年左右的领先优势,这样的预测或判断需要时间来验证。

参考:

==============================================================

/article/4005909.html

http://uh.9ria.com/space-32359-do-blog-id-9250.html

http://www.bit-101.com/blog/?p=946

http://www.riaidea.com/blog/archives/191.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: