as3 webgame 上线版本控制

来源:互联网 发布:银河证券软件下载 编辑:程序博客网 时间:2024/05/16 08:41
 

我的项目应用的方法:

类库: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文件