as3 webgame 上線版本控制

 

我的項目應用的方法:

類庫:LoaderMax

素材加載 用XML文件配置的(loadAssets.xml):

<?xml version="1.0" encoding="utf-8"?> 

<data> 

    <LoaderMax name="SWFqueue" prependURLs="assets/swf/model/" load="true"> 

          <SWFLoader url="Bulletin.swf" name="Bulletin" autoPlay="false" noCache="true" /> 

          <SWFLoader url="Chat.swf" name="Chat" autoPlay="false" noCache="true"  /> 

          <SWFLoader url="Depot.swf" name="Depot" autoPlay="false" noCache="true"  /> 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 

其中的 noCache屬性爲ture表示要產生唯一的緩存 即xx.swf?v=1.01 在URL地址路徑上加參數。

昨天將LoaderMax的源類庫 做了一些修改 loadermax 加載多個SWF文件的時候  如果 沒有設置 estimatedBytes 屬性 在獲取多個SWF文件大小的時候  會在URL地址上加一個隨機參數:即:request.data = new URLVariables("v=" + (_cacheID++) + "&purpose=audit");

我這裏將它改了 :request.data = new URLVariables("v=" + GameGlobal.gameVer);

此修改位置在 :LoaderItem類中的 : override public function auditSize():void { 

 

同時在這個類中的protected function _prepRequest():void { 這個方法也需要修改:

將:_request.data.cacheBusterID = _cacheID++; 修改成:_request.data.v = GameGlobal.gameVer;

 

GameGlobal.gameVer是版本號 數據是從網頁參數中獲取的(index.html):

<script type="text/javascript">

            <!-- For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. --> 

            var swfVersionStr = "10.0.0";

            <!-- To use express install, set to playerProductInstall.swf, otherwise the empty string. -->

            var xiSwfUrlStr = "playerProductInstall.swf";

            var flashvars = {v:"1.02"};

            var params = {};

 

這個index.html是我自己寫的 不過正式上線 這個會是一個動態的網頁文件 flashvars裏面的版本號 將由後臺管理程序來控制。

 

緩存下的SWF文件

發佈了29 篇原創文章 · 獲贊 11 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章