flex项目非RSL方式编译

来源:互联网 发布:淘宝刷粉丝软件手机版 编辑:程序博客网 时间:2024/06/09 21:40

今天项目需要,要将之前用flex4做的swf在非RSL方式下编译,减少第一次启动时的加载时间。修改方法如下:

项目->属性->flex构建路径->将“框架链接”改为“合并到代码中”,重新编译运行就可以了。之间出现一个小插曲,就是改了框架链接方式后,提示代码中读入的文件路径不对。后来回滚了修改的文件,正确编译运行后,在修改前先清理一遍,这样修改后就可以顺利的通过编译了。

另外,用了非RSL方式编译后,之前出现的在系统时间为2000年的机器启动黑屏(即无法启动)的情况解决了。


转帖一篇关于RSL编译方式相关的文章:


flex站點不能打開了~~~~(>_<)~~~~ ,報#2046錯誤,在其他機器訪問頁是ok的,在清緩存、重裝flashplayer一些折騰之後,還是不行,最後在王同事的幫助下,找到了問題所在,原來是系統時間差遠了去了,居然是2001年。當時為了loadrunner 支持500個java Vuser,換了一個非常過期license,需要修改系統時間才可使用,google來一段。粘上 先簡單解釋下背景知識: 從FLEX4開始,所有web程序都默認使用RSL的編譯方式。那用RSL編譯的FLEX站點和普通FLEX站點有什麼區別呢?簡單的說就是,flash player會在你第一次訪問任何一個這種FLEX站點時,緩存下大約1M的類庫在系統里。下次用戶訪問這個站點或者任何其他flex站點時都不用再下載類庫這部分文件。RSL編譯方式就是在編譯時把類庫都分離出去了。這種編譯方式,在同類flash程序通常大小要接近1M的情況下,可以編出100K左右的整站程序,比一張圖片都小。好處自然是非常節省帶寬和加載時間。我現在做的幾個FLEX站點都採用這種編譯方式,加上皮膚也採用全矢量繪圖,編譯出來的整站程序都保持在100K左右,有效的解決了FLASH加載慢的最大問題。   但問題出來了,有一小部分用戶第一次訪問站點時,總是出現無法緩存類庫的問題,表現就是報錯"ERROR:#2046"。或者有些用戶原來能夠訪問成功(說明已經成功緩存過類庫了),但突然也開始報錯了。直接導致的後果就是根本不能加載程序,想要節省加載時間反而導致不能加載,讓我一直很苦惱。從做第一個FLEX4程序開始,我就發現了這個問題,當時只有我的電腦不能訪問我寫的站點,而大家都能,並且我重裝了系統幾次,都不行。後來不知道怎麼的,我又突然就能訪問了,就沒有太在意這個問題。現在想想,那時候我幹了一件他們都沒幹的事:我修改過系統時間。調整到2008年了。   因為用戶系統的時間早於緩存的類庫的有效簽名時間,被flash player拒絕加載了。
困擾我很久的問題終於解決了,非常之高興,遂寫了個js腳本加在網頁里,加載前先判斷下服務器和客戶機的時間差。如果太大就彈出提示。讓用戶把時間改正確,或者就直接跳轉到我準備好的無類庫緩存版站點。我有給每個flex站點都加上這種無緩存的版本,供應急用。就是簡單再寫一個full.html,把引用的程序改成對應的非RSL編譯方式生成的swf即可。訪問方法為:URL後加上full.html,使用上不會有任何差別。 那麼RSL的問題算是完美解決了,順便也把另一個問題解決了吧:在FLEX站點訪問時,還會出現另一個問題,就是很多客戶機的FLASH PLAYER版本過低,導致FLEX程序不加載,表現為一片空白,不提示任何信息(只有沒有安裝FP時,瀏覽器才會自動提示)。這會讓用戶誤以為站點不能訪問了。解決辦法也是加上個JS腳本,判斷一下FP的版本先。下面附上兩個JS腳本,在IE/Firefox/chrome測試均完美通過。