2010-08-12 61 views
3

因此,我有一个适用于我的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> 

现在我想在应用程序中显示的版本,但我不希望有保持在多个地方版本,所以我怎么能阅读应用程序内的版本号?

回答

5

检查下面的代码:

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

干得好,先生! – invertedSpear 2010-08-12 21:26:29

6

这已经在空气中的最新版本(AIR 3.x版)略有改变。而不是appXml.ns :: version,而是使用appXml.ns :: versionNumber。

注意appXml.ns :: VERSIONNUMBER是由一个单一的XML对象的XMLList,所以它需要一点挖的,如果你想获得实际的字符串值:

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

更新,三月2017年5月17日:在某个时候,他们再次更改了AIR的applicationDescriptor。以下代码在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 
+0

我不敢相信花了一个多小时才弄清楚如何做到这一点。 Flash有其优点,但OMG。 Flash中的XML是一个噩梦。 – ericsoco 2014-07-25 05:55:44

+0

我也不敢相信Adobe的文档在3年后会使用这个已弃用的版本作为例子。 – 2017-01-30 12:08:00

相关问题