как я могу прочитать версию из файла дескриптора приложения - PullRequest
3 голосов
/ 12 августа 2010

Итак, у меня есть базовый файл дескриптора приложения для моего приложения AIR. Это выглядит примерно так, сокращенно для здравомыслия:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application xmlns="http://ns.adobe.com/air/application/2.0">
  <version>1.0.10</version>
</application>

Теперь я хочу, чтобы в приложении отображалась версия, но я не хочу поддерживать версию в нескольких местах, так как я могу прочитать этот номер версии из приложения?

Ответы [ 2 ]

6 голосов
/ 13 ноября 2012

Это немного изменилось в последних версиях AIR (версия AIR 3.x).Вместо appXml.ns :: version вы должны использовать appXml.ns :: versionNumber.

Обратите внимание, что appXml.ns :: versionNumber - это XMLList, состоящий из одного объекта XML, поэтому он требует немного копания, если вы хотите получить фактическое значение String:

var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appXml.namespace();
var appVersion:String = appXml.ns::versionNumber[0].toString();
trace("appVersion", appVersion);

Обновление от 17 марта 2017 года. В какой-то момент они снова изменили дескриптор application в AIR.Следующий код работает в AIR 23:

var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:String = appXml.namespace().toString();
var nsArray:Array = ns.split("/");
var appVersion:Number = nsArray[nsArray.length - 1];
trace("appVersion:", appVersion); // appVersion: 23.0
5 голосов
/ 13 августа 2010

Проверьте следующий код:

            var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
            var ns:Namespace = appXml.namespace(); 
            trace(appXml.ns::version); 
...