我正在尝试在as3中创建一个版本查询。
搜索当前版本正常
var appXml1:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns1:Namespace = appXml1.namespace();
var current1:String = appXml1.ns1::versionNumber[0];
在线搜索新版本可以正常使用
var apploader:URLLoader = new URLLoader();
var apprequest:URLRequest = new URLRequest("http://XXX/app/version/app.xml");
apprequest.method = URLRequestMethod.POST;
apploader.load(apprequest);
var xml:XML = XML(apploader.data);
我在if Statement
失败了if (xml.version > current1)
{
gotoAndStop(3);
}
当前版本为2.0.0
新的在线版本是2.0.1
代码在第2帧,当测试电影没有在第3帧停止但仍在第2帧
时我怀疑版本号中点的错误。那可能吗?我怎么能解决这个问题。
谢谢(抱歉我的英语不好)
答案 0 :(得分:0)
我写了实用函数,非常简单,可以测试版本。您比较版本,结果可以是1
- 如果版本1大于版本2,0
- 版本1和版本2相等,-1
- 版本1低于版本2
private function compareVersions(version1:String, version2:String):int {
var v1:Array = version1.split("."), v2:Array = version2.split(".");
var i:uint, len:uint = v1.length;
for (i; i < len; ++i) {
if (v1[i] > v2[i]) {
return 1;
} else if (v1[i] < v2[i]) {
return -1
}
}
return 0;
}
使用方法:
var currentVersion: String = "2.0.1";
var lastVersion: String = "2.0.0";
if(compareVersions(currentVersion, lastVersion) > 0){
trace("Current version is greater! Yes!");
}