RichBox-富盒子工作室
专业的RIA解决方案实现团队,承接Flash/Flex/ActionScript3/AIR/HTML5/CSS项目

来源:AIR Tip 3: What Version is My Application

每个AIR应用程序都有一个XML格式的应用程序描述文件,用于定义程序的一些属性。这个文件允许开发人员定义应用的ID,版本,名称,以及其它的属性。在AIR Beta3的版本中,可以用NativeApplication.nativeApplication.applicationDescriptor来引用这个文件(ActionScript),如果是JavaScript,可以用air.NativeApplication.nativeApplication.applicationDescriptor。

版本:这个教程基于AIR Beta3

ActionScript示例:

使用这些代码,我们就能获取应用程序描述文件的引用了:

  1. private var airApplicationID:String = “”;

  2. private var airApplicationVersion:String = “”;

  3. private var airApplicationName:String = “”;

  4. private function getApplicationInformation():void {

  5. // Get the Application Descriptor File
  6. var appXML:XML = NativeApplication.nativeApplication.applicationDescriptor;
  7. // Define the Namespace (there is only one by default in the application descriptor file)
  8. var air:Namespace = appXML.namespaceDeclarations()[0];

  9. // Use E4X To Extract the Needed Information

  10. this.airApplicationID = appXML.air::id;

  11. this.airApplicationVersion = appXML.air::version;

  12. this.airApplicationName = appXML.air::name;

  13. // Retrieve any additional information from the application descriptor file

  14. }

这个示例定义了3个变量:名称,程序ID,和版本号。使用E4X,你可以从应用程序描述文件中获取应用的每一个属性的值。当然在E4X中,在你告诉它使用哪个命名空间之前,没有一个值会被返回。namespaceDeclarations标签返回了一个包含XML对象所有命名空间的数组。通常情况下,应用程序描述文件只有一个独立的命名空间。通过使用这种方式定义命名空间,你就可以保证这个标签也可以很好的工作在未来的AIR版本中(除非AIR的API更改了)。

JavaScript示例:

在这个JavaScript示例中,使用方法只有微小的改变。应用程序描述文件要引用自NativeApplication类,但是JavaScript认为返回的值是字符串(并不是XML)。你必须首先创建一个DOM Parser对象并传递给它XML值。这样你就可以从XML中获得返回值。

  1. var airApplication = {};

  2. function getVersion() {

  3. // Get Application Descriptor File

  4. var appXML = air.NativeApplication.nativeApplication.applicationDescriptor;

  5. // Parse the Application Descriptor File as XML

  6. var xmlObject = (new DOMParser()).parseFromString(appXML, “text/xml”);

  7. // Get the Needed Values from the XML

  8. airApplication.version = xmlObject.getElementsByTagName(‘version’)[0].firstChild.nodeValue;

  9. airApplication.applicationID = xmlObject.getElementsByTagName(‘id’)[0].firstChild.nodeValue;

  10. airApplication.name = xmlObject.getElementsByTagName(‘name’)[0].firstChild.nodeValue;

  11. }

下面的示例代码中说明了如何创建一个可以重新获取这些信息的AIR应用程序。当然这只是一个示例(不是一个真实的应用),所以不提供AIR文件的下载。

Flex Application
Source Code

JavaScript Application
Source Code


Tags: ,

Post Comment

Please notice: Comments are moderated by an Admin.


Powered by Wordpress
Theme © 2005 - 2009 FrederikM.de
BlueMod is a modification of the blueblog_DE Theme by Oliver Wunder