我們都很喜歡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已經很不錯了,如果以後有需要的話,我會使用的。
附件: 我的網盤