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文件
标签:上线,data,request,SWF,版本控制,GameGlobal,var,webgame,gameVer From: https://blog.51cto.com/kenkao/5991133