【问题标题】:how can I read the version from application descriptor file如何从应用程序描述符文件中读取版本
【发布时间】:2011-03-29 01:47:14
【问题描述】:

所以我有一个用于 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>

现在我想在应用程序中显示版本,但我不想在多个地方维护版本,那么如何从应用程序中读取该版本号?

【问题讨论】:

    标签: xml apache-flex actionscript-3 air air2


    【解决方案1】:

    检查以下代码:

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

    【讨论】:

      【解决方案2】:

      这在 AIR 的最新版本(AIR 版本 3.x)中略有改变。您可以使用 appXml.ns::versionNumber 代替 appXml.ns::version。

      请注意,appXml.ns::versionNumber 是一个由单个 XML 对象组成的 XMLList,因此如果您想获得实际的 String 值,则需要进行一些挖掘:

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

      2017 年 3 月 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
      

      【讨论】:

      • 我不敢相信花了一个多小时才弄清楚如何做到这一点。 Flash 有它的强项,但 OMG。 Flash 中的 XML 是一场可怕的噩梦。
      • 我也不敢相信,Adobe 的文档在 3 年多后使用过时的版本作为示例。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2011-08-16
      相关资源
      最近更新 更多