在网上搜索发现也有朋友遇到了类似的问题,就是初始化太慢。有人评论说flex4 不如3,还有说退回到flash吧。。我于是就怀疑flex4 是不是真的就是这么个速度。。当然,后来经过不断探索,发现flex4也是可以很快的(不然谁还用flex4)。
今天早上先上传了个flex3项目,测试一下速度,果然很快。。几秒钟就加载完毕了。而之前的flex4 却依然缓慢。我突然想到去找找网上的flex4 站,看看他们的速度怎么样,结果鼓舞人心,速度很快也是几秒钟的事er。那不可怀疑的,说明我们的程序(编译)还是有问题。
搜索找到了一 篇文章关于flex 4 framework 框架加载的感受(http://docs.马开东/blog/521568 )然后又找到了adobe的论坛so long time to download flex4 framework!!!(http://forums.adobe.com/message/2428795#2428795)弄明白了原因和解决方 案。之所以加载缓慢是因为在flash builder默认使用了rsl(运行时共享链接),flex4为了加快加载速度使用了rsl,即把可以共享的框架、类库单独生成文件,并在请求时缓存到 flash cache中,这样只要是同域的flex项目就都可以使用而不必重新加载从而加快了加载时间。而问题也恰恰处在这个默认设置上,这些共享文件的优先位置是 从adobe的服务端上下载,正是这个请求下载开发过程 造成了加载奇慢。解决的办法就是将这些文件的位置优先指向自己的服务器开发(本地),flash builder的release 发布也可以生成这些文件,只要将这些.swz文件上传至服务器开发即可。
打开项目--属性--flex构建路径--库路径标签,点开 flex4.1 选择framework.swc的链接类型--编辑--弹出库路径选项框。
可以看到默认的adobe的server路径在第一个,第二个是本地路径(要求与swf在同目录),将第二个调到第一位置。当然也可以自定义路径,可以是相对的或绝对地址。点击确定保存设置。
这样依次设置
framework_4.0.0.14159.swz
osmf_flex.4.0.0.13495.swz
rpc_4.0.0.14159.swz
spark_4.0.0.14159.swz
sparkskins_4.0.0.14159.swz
textlayout_1.0.0.595.swz
(这篇文章也很有用http://devgirl.org/2010/04/08/framework-rsls-in-fl ex-builder-vs-flash-builder-performance-and-importa nt-info/)
最后点击项目--导出发行版,在bin-releas下可以看到生成的.swz文件,第一次要把所有的文件上传到网站,以后只要是同域的其他flex项目指定好rsl路径,就不必再上传.swz文件了,这样大大减小了swf文件的大小,加快了加载速度。
到此解决了开始的问题,同时使得rsl的优点也得到体现。