FLEX發佈體積過大是每個使用FLEX開發的朋友都知道的
那是因爲FLEX在發佈的時候會帶一個框架文件
,框架文件
包含了所有的Flex內置類…
該文件
大小大概是500多K,以致一個空的FLEX項目.發佈後就有500多K
所以FLEX提供了RSL(runtime shared library)(運行共享庫??),
讓用戶只需要下載相同版本的框架文件
一次,然後存在FlashPlayer指定的cache目錄中..
當下次再瀏覽應用了RSL的FLEX項目時,就不需要重新下載..從而加快加載速度.
….理論的東東不大會表達..差不多是這樣吧…下面實際操作一下..
要應用RSL.我們執行下面的步驟:
1.在項目文件
夾中點右建,選擇”properties”-”Flex BuildPath”-”Library Path”
2.該選項卡上我們看到”FrameWork linkage”,默認是選中”Merged into cdoe”(打包在裏邊..大概這意思)
3.點開下拉,選擇”runtime shared library(RSL)”,點”OK”
這樣~我們的項目就已經使用RSL~把框架文件
分離出來..
我們點開項目的bin(bin-debug)文件
夾.
會看到已經生成了framework_3.0.0.477.swf和framework_3.0.0.477.swz
兩個文件
(0,0,447是版本號).
再看看項目的swf..已經變成了50k左右(只有兩三個組件)
當我們發佈項目時..
只需要把framework_3.0.0.477.swf和framework_3.0.0.477.swz
兩個文件
跟項目swf放在一目錄下傳到服務器上即可…
ps:在這裏說說兩個值得注意的問題..
第一個是發佈項目後出現RSL error..主要有兩個原因:
1.使用低於9.0.115版本的FLASH PLAYER,,
2.沒有把framework_3.0.0.477.swf和framework_3.0.0.477.swz
傳到服務器上..以至類庫無法下載….
說第二個問題前..先介紹一下framework_3.0.0.477.swf和framework_3.0.0.477.swz
,
其中framework_3.0.0.477.swz
加載時會優先加載的..當加載成功後..會放到flash player的cache目錄下.(完成RSL…).
當framework_3.0.0.477.swz
下載失敗的話..flashplayer會自動下載framework_3.0.0.477.swf,該文件
只能下載到ie緩存..並不能達到RSL功能.,只保證項目可正常運行.
很從朋友反映..在本地瀏覽的時候..framework_3.0.0.477.swz
可以正常加載到player的cache目錄..
可是當放到服務器後..即會加載不成功..只能靠加載swf來運行..
查看對方系統路徑
Documents and Settings/{username}/Application Data/Adobe/Flash Player/AssetCache/
並未發現那個526KB的SWZ
文件
出現這個情況..是因爲服務器的IIS不支持swz
後綴的文件
的下載..
(以前flv沒盛行之前也出現過這類情況),
如果是自己的服務器.我們只需要配置一下iis.添加一MIME類型即可..
詳細操作就不說了..MIME類型如下..
swz_mimn