让你的AIR程序脱离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,这是不是很爽呢?

posted @ 2011-12-15 14:30  Lunaa  阅读(223)  评论(0编辑  收藏  举报