削减flex 应用程序swf文件的体积

一直对flex 生成的swf文件大小耿耿于怀,即使是只有少数几个控件的简单程序,生成的swf文件也是将近200k,这势必会破坏用户体验.造成这种情况的原因是,flex 组件框架为了提供丰富的功能,本身结构非常复杂,包含了大量的代码,翻翻flex3sdk的源码就知道,UIComponent是一个将近300k的超级怪物,Container也有将近200k,而这两个类正是flex组件中最基础的两个类.flex3以前,这些代码都要在编译时链接到应用程序中,所以导致最终的应用程序swf肿胀.过大的swf文件体积给用户体验造成了影响,用户可能不耐烦等待下载就离开了.

 

flex3的发布给我们带来了一个好消息,flex3中已经具有了将flex组件框架缓存在客户端播放器中的能力, 9.0.115 以后版本的flash 播放器支持加载经过签名的RSL文件,在运行时,如果一个应用程序需要flex的框架代码,而在本地找不到的话,就会去指定的位置下载,下载后缓存到播放器的目录中,以后再遇到需要框架代码的情况,就直接使用缓存中的框架代码,这使得应用程序的swf文件体积可以大副削减,经过测试,应用程序体积最小能够达到50k左右.

 flex3sdk,编译器提供了选项,在编译时通过指定参数,不链接框架代码,并将经过签名的RSL框架文件部署到同一目录下.

例如: mxmlc -runtime-shared-library-path=libs/framework.swc,

    framework_3.0.183453.swz,,framework_3.0.183453.swf

    SimpleApp.mxml

 

flex builder3 ,就更简单了,只需要在项目的”build path” 选项中,将框架的链接属性从”merged into code” 设置成 “Runtime library”就可以了,如下图.

 

更详细具体的解释和操作可以adove livedoc:

http://livedocs.adobe.com/flex/3/html/help.html?content=rsl_09.html

 

个人觉得,adobe flex livedoc文档质量相当高,简直就是flex 大百科全书,英文好的话,直接啃livedoc就可以了,哪天全看懂了,就成超级牛叉的专家了.哈哈.

你可能感兴趣的:(html,框架,Flex,Flash,Adobe)