天天看點

獨立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已經很不錯了,如果以後有需要的話,我會使用的。

附件: 我的網盤