天天看点

独立air应用程序打包

 我们都很喜欢AIR,因为她很美丽,但又不敢使用AIR,因为难以推广,实在让人为难。

  但是现在我们不再为难了,为什么?

  因为我们已经找到了让AIR程序脱离AIR环境的方法。

  首先,我们来分析一下AIR程序的运行机制,.air文件安装后会在安装目录生成一个.exe文件,此文件在启动时首先调用AIR运行时库Adobe AIR.dll。然后开始执行主程序.swf文件,那么我们就将这个Adobe AIR.dll文件提取出来使用。

  事实上我们无法直接来使用这个文件,AIR程序不像C++程序那样把所有依赖项放在同一个目录就OK了,我们需要AIR的调试器adl.exe文件来启动我们的AIR程序。

  好了,不多说了,让我们开始吧。

  首先,下载AIR sdk,如果你电脑上安装了flex,也可以用Flex sdk3.0以上。如果你的Flash可以开发AIR程序,还可以到C:/Program Files/Adobe/Adobe Flash CS3/AIK目录获得此AIRSDK。下面以Flash CS3为例讲解如何从命令行执行AIR程序。

  打开Flash CS3,创建一个AIR程序保存在D:/AIRTest目录下,保存为AIRTest.fla,Ctrl+Enter运行程序,此时可以看到AIR窗口,关闭这个窗口。

  选择Windows的 开始->运行,输入cmd打开dos窗口,首先设置环境变量路径:

  set path=C:/Program Files/Adobe/Adobe Flash CS3/AIK/bin

  回车,此环境变量设置成功,然后输入:

  D:

  回车,进入D盘根目录,然后输入:

  cd D:/AIRTest

  回车进入我们的工作目录,然后输入:

  adl AIRTest-app.xml

  回车,此时我们就可以看到出现了AIR窗口,不管你的电脑上是否安装AIR运行环境,用这种方法都可以打开此AIR窗口。

  那么下面我们就提取adl.exe和Adobe AIR.dll来打包我们的程序。将C:/Program Files/Adobe/Adobe Flash CS3/AIK目录下的bin目录和runtimes目录拷出来,随便放在一个地方,然后将bin目录下除adl.exe外的文件全部删除,再将runtimes目录下的除Adobe AIR.dll外的文件全部删除(这样做是为了减小打包文件的体积)。

  将D:/AIRTest目录下的 AIRTest-app.xml 和 AIRTest.swf 文件拷到bin目录下与adl.exe放在一起,然后在adl.exe的父级目录创建一个批处理文件叫app.bat,在app.bat文件中输入以下代码:

@echo off

::转到当前盘符

%~d0

::打开当前目录

cd %~dp0

echo 已将程序定位到当前目录,开始启动AIR程序

::执行AIR程序,并向InvokeEvent事件传参数

bin/adl bin/AIRTest-app.xml -- %1

此时双击这个bat文件就可以执行我们的程序了。

  为了让我们的程序更加完美的执行,我们还可以使用一个小软件叫 bat2exe,你可以百度一下,下载此软件,后面的就不用说了吧,可以使用幽灵模式来隐藏dos窗口,还可以为程序添加图标。

  然后将所有需要的文件打包一下,你会发现压缩包小于3M,这是不是很爽呢?

-------------------------------------

我再补充一些:

1.AIR2.0将可以调用本机exe文件,这就意味着可以使用动态库,Adobe本意是将AIR做成跨平台的,所以不会直接支持本机动态库,但可以使用间接的方法。

2.AIR程序也可以调用多个swf文件。

3.貌似flash4ui还依赖flash activex控件,我试过了,把本机flash activex插件卸载之后,flash4ui程序就不能运行了,AIR并不依赖ActiveX插件。

总的来说,flash4ui已经很不错了,如果以后有需要的话,我会使用的。

附件: 我的网盘