用AS3+Flash+FlashBuilder开发AIR

徐正雅
2023-12-01

中文官方文档有:

https://help.adobe.com/zh_CN/air/build/WS2d8d13466044a7337d7adee012406959c52-8000.html

https://help.adobe.com/zh_CN/air/build/index.html

 

 

安装AIR SDK

 

在 Windows 中安装 AIR SDK

安装之前需要安装java的jdk,安装完之后运行不需要jdk。

1)      下载 AIR SDK 安装文件。去adobe官网找到Air sdk。(不是运行的air)

2)      AIR SDK 按标准归档文件进行分发。若要安装 AIR,请将 SDK 的内容提取到计算机上的一个文件夹(例如:C:\Program Files\Adobe\AIRSDK 或 C:\AIRSDK)中。

3)      ADL 和 ADT 工具包含在 AIR SDK的 bin 文件夹中;请将此文件夹的路径添加到 PATH 环境变量中。

安装完成后打开cmd,输入指令:  adt –version

成功输出版本号说明SDK安装成功,只有sdk安装成功后才可以开发AIR。安装完成之后可以用集成环境开发,下面是用flash builder开发。

 

在Flash Bulider中创建桌面Flex AIR应用程序

需要安装Flash Builder和Adobe AIR SDK。

打包过程也在下面文档中,构建第一个HelloWorld

相关中文文档:

https://help.adobe.com/zh_CN/air/build/WS5b3ccc516d4fbf351e63e3d118676a28bd-8000.html

 

每个AIR程序会包含一个应用程序描述符,用来控制AIR的外观样式以及扩展等内容。用flash builder点击文件->新建->Flex项目->选择应用程序类型“桌面(在Adobe AIR中运行)”可创建一个AIR项目。

创建好的AIR项目会包括项目名.mxml 和项目名-app.xml。其中mxml可看做是一个as3类(在编译时会将mxml翻译成as3语言,生成若干个as3类),是项目的启动类。项目名-app.xml是应用程序描述符文件。

因为mxml语言开发比较繁琐,而且在mxml中嵌入as3代码不利于书写和阅读,所以为了转成flash+as3的开发模式,可以在mxml类中指明舞台加载完成后执行的as3类,再在指定的as3类中加载其他swf到舞台上,并且调用其他as3类来控制swf,这样就可以不用mxml语言开发air界面而是用flash+as3来开发。

具体操作如下:

在mxml中加入:

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"

                 xmlns:s="library://ns.adobe.com/flex/spark"

                 xmlns:mx="library://ns.adobe.com/flex/mx">

   <fx:Script source = "AIRRoot.as"/>

</s:WindowedApplication>

指明调用AIRRoot.as。

在AIRRoot.as中加载其余swf进入舞台:

public function Init():void

{       

         varload:Loader = new Loader();

         varsourceURL:String = "../AirEntrance/AIR_Entrance.swf";

         varloader:Loader = new Loader();

         loader.load(newURLRequest(sourceURL),new LoaderContext(false,ApplicationDomain.currentDomain));

         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, OnCommonResourceCompleteLoad);

}

 

private functionOnCommonResourceCompleteLoad(event:Event):void

{

         //书写操作swf的as语言即可

}

加载的swf需要放在src文件夹下,否则会因为域的问题无法找到swf。

现在就可以实现用as3+flash在flashBuilder中开发AIR桌面应用程序了。

 

开发桌面AIR应用程序的工作流程

 

可以使用 Flash、Flex 和 ActionScript 来编写应用程序代码,使用 Flash Professional、Flash Builder 或 mxmlc 和 compc 命令行编译器进行编译。也可以使用 HTML 和 JavaScript 来编写应用程序代码,并跳过编译步骤。

 

基于 SWF 的应用程序

 

1)  编写 MXML 或ActionScript 代码。

2)  创建需要的资源,例如图标位图文件。

3)  创建应用程序描述符。

4)  编译ActionScript 代码。

5)  测试应用程序。

6)  使用 air 目标打包为 AIR 文件并进行签名。

 

MXML语言在flex中会先再编译时 被翻译成AS3代码,再从AS3代码翻译成ABC字节码,最后放入其他嵌入的媒体资源,编译成SWF文件。

 

AIR 应用程序描述符文件

每个 AIR 应用程序都需要一个应用程序描述符文件。应用程序描述符文件是定义应用程序基本属性的 XML 文档。一般描述符文件都是项目名-app.xml

如果应用程序使用 HTML 文件而非 SWF 文件作为其根内容,不同的只是 <content> 元素。

中文文档:

https://help.adobe.com/zh_CN/air/build/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff1.html

上述文档中有描述符文件的结构和元素内容。

主窗口属性就是在描述符文件里设置,影响窗口的外观。

 

AIR使用本机扩展

中文文档:

https://help.adobe.com/zh_CN/air/build/WS597e5dadb9cc1e0253f7d2fc1311b491071-8000.html

使用本机扩展的任务列表

要在应用程序中使用本机扩展,请执行以下任务:

  1. 在应用程序描述符文件中声明扩展。
  2. 在应用程序库路径中包含 ANE 文件。
  3. 打包应用程序.

本机扩展是指用air启动其他语言编写的程序来达到操作文件系统等功能。

 

NativeProcess类可以替代本机扩展操作计算机系统的进程(比如启动计算机系统的某个exe文件,结束计算机上正在运行的某个进程),但仅在桌面系统可用。NativeProcess类会维持单独的进程,而不会影响到启动的进程,相对独立;本机扩展的内容则与AIR跑在同一进程内,访问权限更高但会互相影响。


导出发行版打时间戳相关问题

在选择打包时,不要选择打时间戳,因为目前给时间戳进行验证的默认服务器已经关闭,所以用flash builder打时间戳会报 Connect TimeOut的错误。总之,Flash Builder默认使用的签名时间戳服务器(http://timestamp.geotrust.com/tsa)已经停用了。

如果需要打时间戳,则必须用ADT工具用命令行打包,手动指定时间戳地址,将时间戳的验证服务器和数字签证一起打包进去。

关于为什么需要时间戳的问题:没有时间戳,air包在证书过期后就无法再安装。

以下是ADT命令导出AIR包的两个网址:

https://my.oschina.net/return/blog/1631031

https://blog.csdn.net/u011378744/article/details/50711035


 

 

 

 类似资料: