用RSL来为你的flex程序减肥
用RSL来为你的flex程序减肥
问题:一个只有几个控件的flex project也有500多k ?
那是因为FLEX在发布的时候会带一个框架文件,框架文件包含了所有的Flex内置类,该文件大小大概是500多K,以致一个空的FLEX项目.发布后就有500多K
解决办法:利用RSL
RSL是 Runtime Shared Library的简称,意思是运行时共享库当前RSL主要有3个级别的,一个是Standard RSL(即一个网站内共享),一个是Cross-domain RSL(跨域共享),最后一个也是最关键的是Framework RSL(Flex框架共享)。
Framework RSL 意思是, 把Flex的类和库在程序运行时动态加载而不是封装在程序里面如果不用 Framework RSL, 你的主程序就会使用你编写的代码里必须导入的类,这样一来, 你代码写的越多, 需要导入越多的类, 你程序体积就越大,也就是说, 不用Framework RSL, 你的程序就是这样的:你自己的自定义类代码 + 你必须使用的Flex自带类 (framework)。如果使用了Framework RSL你的程序就只包含你自己写的类代码而已, 体积就很小了,framework会变成另一个文件, 动态加载到你的程序里。当一个用户加载了任何一个使用此版本RSL的应用程序后,此版本RSL会被其缓存在flash player的cache中,并且这个cache不随着浏览器缓存清空而清空,以后如果此用户再次加载使用此版本RSL的程序的时候便不再需要加载此RSL,加载速度将大大提高。
分离RSL的步骤:
1.在项目文件夹中点右建,选择"properties"-"Flex Build Path"-"Library Path"
2.该选项卡上我们看到"FrameWork linkage",默认是选中"Merged into cdoe"(打包在里边..大概这意思)
3.点开下拉,选择"runtime shared library(RSL)",按"OK“即可
这样我们的项目就已经使用RSL把框架文件分离出来了。
结果:
再查看bin-debug文件下项目的swf文件变成100多k左右了,还生成framework_3.2.0.3958.swf和framework_3.2.0.3958.swz两个文件。
项目发布:
只需要把framework_3.2.0.3958.swf和framework_3.2.0.3958.swz两个文件跟项目swf放在一目录下传到服务器上即可...
本地浏览加载 :
只需加载项目swf文件即可。而swz文件是动态加载到cache目录下,以后直接调用即可,当flex版本一样时,一切都是共享的了
问题:一个只有几个控件的flex project也有500多k ?
那是因为FLEX在发布的时候会带一个框架文件,框架文件包含了所有的Flex内置类,该文件大小大概是500多K,以致一个空的FLEX项目.发布后就有500多K
解决办法:利用RSL
RSL是 Runtime Shared Library的简称,意思是运行时共享库当前RSL主要有3个级别的,一个是Standard RSL(即一个网站内共享),一个是Cross-domain RSL(跨域共享),最后一个也是最关键的是Framework RSL(Flex框架共享)。
Framework RSL 意思是, 把Flex的类和库在程序运行时动态加载而不是封装在程序里面如果不用 Framework RSL, 你的主程序就会使用你编写的代码里必须导入的类,这样一来, 你代码写的越多, 需要导入越多的类, 你程序体积就越大,也就是说, 不用Framework RSL, 你的程序就是这样的:你自己的自定义类代码 + 你必须使用的Flex自带类 (framework)。如果使用了Framework RSL你的程序就只包含你自己写的类代码而已, 体积就很小了,framework会变成另一个文件, 动态加载到你的程序里。当一个用户加载了任何一个使用此版本RSL的应用程序后,此版本RSL会被其缓存在flash player的cache中,并且这个cache不随着浏览器缓存清空而清空,以后如果此用户再次加载使用此版本RSL的程序的时候便不再需要加载此RSL,加载速度将大大提高。
分离RSL的步骤:
1.在项目文件夹中点右建,选择"properties"-"Flex Build Path"-"Library Path"
2.该选项卡上我们看到"FrameWork linkage",默认是选中"Merged into cdoe"(打包在里边..大概这意思)
3.点开下拉,选择"runtime shared library(RSL)",按"OK“即可
这样我们的项目就已经使用RSL把框架文件分离出来了。
结果:
再查看bin-debug文件下项目的swf文件变成100多k左右了,还生成framework_3.2.0.3958.swf和framework_3.2.0.3958.swz两个文件。
项目发布:
只需要把framework_3.2.0.3958.swf和framework_3.2.0.3958.swz两个文件跟项目swf放在一目录下传到服务器上即可...
本地浏览加载 :
只需加载项目swf文件即可。而swz文件是动态加载到cache目录下,以后直接调用即可,当flex版本一样时,一切都是共享的了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)