版本请求失败错误的版本点?

时间:2014-03-06 09:24:21

标签: android actionscript-3 flash air

我正在尝试在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帧

我怀疑版本号中点的错误。那可能吗?我怎么能解决这个问题。

谢谢(抱歉我的英语不好)

1 个答案:

答案 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!");
}