制作游戏时时常需要更新前台版本,但是这就需要清空缓存重新进入系统,但是这样繁琐的操作会使用户大量流失(失去耐心),那么就急需一种全自动的更新方式来进行前台更新。
所有的基础来自于动态页面(jsp、php、asp等)。这种界面不会在客户端产生缓存,所以我们可以利用这点来做文章了!
1.把flex生成的html代码全拷入jsp,记得保留jsp的头标签。
2.修改版本号(红色字体):
} else if (hasRequestedVersion) {
// if we've detected an acceptable version
// embed the Flash Content SWF when all tests are passed
AC_FL_RunContent(
"src", "War?ver=10.0",
"width", "1000",
"height", "600",
"align", "middle",
"id", "War",
"quality", "high",
"bgcolor", "#000000",
"name", "War",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
这样客户端会再从服务器读取最新的War.swf了(War.swf是入口文件),然后修改代码中引用其他模块的地址,也加上版本号:
public static const CREATE_PLAYER:String="CreatePlayer.swf?ver=10.0";
public static const GUIDE:String="GuideWindow.swf?ver=10.0";
public static const BODY:String="Body.swf?ver=10.0";
这样处理以后客户端会重新加载这些module了,按照需要修改了这些链接以后,将更新的代码文件编译放到服务器上就可以了。
3.当用户使用main.jsp登陆后,由于版本号的存在,客户端会认为这个swf是和缓存中存在的swf不一样的文件,所以会从服务器重新下载主应用文件。主应用文件再通过相同原理再重新加载其他模块达到,全部自动更新的目的、