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來運行..
出現這個情況..是因為伺服器的IIS不支援swz尾碼的檔案的下載..
(以前flv沒盛行之前也出現過這類情況),
如果是自己的伺服器.我們只需要配置一下iis.添加一MIME類型即可..
詳細操作就不說了..MIME類型如下..