FLEX的SWC与RSL

FLEX的SWC与RSL1 SWC 简述 SWC 实质是将事先做好的公共程序封装到一个包内发布 提供给其他开发人员使用 类似于 JAVA 的类库

大家好,欢迎来到IT知识分享网。

1.SWC简述

   SWC实质是将事先做好的公共程序封装到一个包内发布,提供给其他开发人员使用,类似于JAVA的类库。

   SWC可以封装以下内容:

      .图片、声音等素材文件

      .程序

      .控件或自定义控件

   SWC有两种使用方式

      1.将源代码编译到SWF文件中,SWF运行时不需要外部程序包。

      2.利用RSL技术,SWF文件在运行时才调用SWC中的程序,因此,必须将外部程序包方在SWF能够找到的地方。供其动态调用。这种技术类似于DLL技术。


2.RSL简述

   RSL是与Flex程序物理分离的独立swc文件。当客户通过浏览器下载Flex程序之后,由FlashPlayer负责解释执行。 FlashPlayer在解析Flex程序结构的时候,发现该Flex程序使用了某个RSL,于是FlashPlayer就马上从服务器端下载该RSL,并存放在浏览器缓存中或FlashPlayer指定的客户机硬盘的某个地方。

   如果存放在浏览器内,则只在浏览器内有效

   如果存放在硬盘中,则永久有效

   目前,永久缓存只能是Flex Framework。浏览器缓存则可以是自定义的Flex公共程序集合指,比如SWC

   framework4的大小约为955K,只要不重装操作系统,只需下载一次。

3.FLEX4使用SWC

   开发工具flash builder4 beta2

(1)新建一个FLEX库项目,在SRC目录下存放图片或程序。完成后,直接在FLEX库项目名上通过“右键”点击”构建项目”,生成的SWC文件在bin目录下。

(2)在将生成的SWC复制到开发项目中的libs目录下,则SWC自动被引入到项目中。

   如果想将SWC中的源代码编译到SWF文件中

      点击”项目名”->”FLEX构建路径”->”libs”中的链接类型,设置成”合并到代码”

      这种方式的缺点是:只是从程序结构上进行了优化,并没有减轻SWF文件的大小

   如果利用RSL技术,SWF文件在运行时才调用SWC中的程序

      理论上可以点击”项目名”->”FLEX构建路径”->”libs”中的链接类型,设置成”外部”。然后再将SWC文件复制到WEB目录下,与SWF文件同一目录。

      实际上,这种方式是行不通的,不知道为什么,只能通过以下方式实现。

   在同一个flash buider4 beta2工具下新建两个项目一个是开发项目,一个是FLEX库项目

   点击”开发项目名”->”FLEX构建路径”->”库路径”,点击”添加项目”,将FLEX库项目添加进来。

   再将”链接类型”改在RSL方式。如下所示:
FLEX的SWC与RSL

4.SWC和RSL优化小结

   本人首先自定义了一个Panel和一个Link控件,代码就不说了。

   再将代码复制到一个新建的FLEX库项目中,分别做了二个主程序进行调用。

   结果如下

             框架是否使用RSL  SWC是否使用RSL     SWF文件大小

     直接调用          否                               941K

     直接调用          是                               150K

     SWC调用        否                否               941K

     SWC调用        否                是               770K

     SWC调用        是                否               150K

     SWC调用        是                是               144K

   从上面结果可以看出框架是否使用RSL对于SWF的文件大小的影响太大了,第一次要下载955K的framework的代价是完全值得的。

   SWC是否使用RSL总的来看,如果少量复用,意义不大。

   上例代码中共使用了一个自定义panel和二个自定义link控件的大小约3K,反复使用四次,

   不优化的大小是150K,而优化之后的大小是144K,减小了约6K,远远小于一个FLEX空白页的大小(约130K)。

  

参考文献:

1.姜天格.FLEX3企业级WEB应用系统设计与实现

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/152200.html

(0)
上一篇 2025-03-09 19:05
下一篇 2025-03-09 19:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信