2012-07-19 71 views
7

我有現有的Flash應用程序,它編譯爲SWF並在Web上運行。我正在考慮將該應用程序轉換爲適用於iPhone/iPad等移動設備。從SWF到AIR到iOS應用程序

我看到現在有一​​種方法publish Adobe Air applications on mobile devices。我的想法是,爲什麼不是convert SWF to AIR application,然後使用該AIR應用程序在移動設備上發佈。是否有意義?這甚至可能或可行嗎?

人們在做什麼來將現有的Flash SWF應用程序轉換爲在移動設備上工作?

+0

我以爲Apple確實允許。 http://www.youtube.com/watch?v=_hkfOk8P79s – 2012-07-19 01:33:31

+0

酷,祝你好運隊友! – doNotCheckMyBlog 2012-07-19 01:37:30

+0

當然蘋果允許它。 – iND 2012-07-19 04:04:21

回答

3

這個問題只是answered here,但要回顧任何Flash內容可以打包到iOS或其他移動設備與AIR。

AIR可以覆蓋到Flash Professional或Flash Builder中,或您的SWF可以使用ADT命令行打包打包:

  • 下載AIR 3.0 SDK。
  • 確保JRE,或使用Flash Builder中的一個。
  • 執行ADT你的SWF打包到一個IPA:

    adt -package -target [ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc] 
        -keystore iosPrivateKey.p12 -storetype pkcs12 -storepass qwerty12 
        -provisioning-profile ios.mobileprovision 
        HelloWorld.ipa 
        HelloWorld-app.xml 
        HelloWorld.swf icons Default.png 
    

重要的是要注意,所有的可執行代碼必須駐留在一個單一的SWF到iOS平臺上運行是非常重要的。不支持SWFLoading或執行代碼的任何動態加載的SWF。因此,請將您的所有Flash鏈接到單個SWF。

還有其他注意事項,如optimizing performance和處理多個屏幕分辨率和長寬比。

參考文獻:

+0

談到性能優化,我建議使用當前的AIR 3.3 SDK,因爲它的性能比以前的版本要好得多。 – AlBirdie 2012-07-20 10:19:05

2

有實現這幾個方面:

  1. 您CA ñ下載Adobe AIR SDK,並按照其helpthis tutorial。如果你不熟悉命令行,這種方法會有點乏味,但它也許是最強大的選擇,因爲你可以調整和控制很多選項。

  2. 如果您有FLA文件,最新版本的Flash CS6應該爲您提供更輕鬆地創建IOS IPA文件的方法。如果您是Windows用戶,則需要獲取p12文件以及移動配置文件。 Adobe有文件說明如何在沒有Mac的情況下執行此操作。最終,當您的IPA適用於AppStore時,您需要一臺Mac。

請記住,SWF的用戶體驗不會馬上爲iOS翻譯好。例如,按鈕的大小,交互式用戶控件的可供性以及最重要的鼠標懸停事件有時會對移動應用程序的體驗產生負面影響。

但這些問題與SWF無關,因爲我也看到了與其他基於HTML的網絡應用類似的問題。

祝你好運,我會說寫Flash,它到處運行包括iPhone/iPad是真正令人驚訝的事情,大多數人都不知道。

2

我一直在做這個確切的事情一年左右。

您必須使用Mac上的鑰匙串設置證書,並且必須從Mac上傳應用程序。但是,我沒有Mac。 。 。相反,我使用(macincloud或其他)在遠程Mac上租用時間,並使用DropBox來回發送文件。

根據SWF的創建方式,您不一定需要購買Adobe產品。我使用FlashDevelop,它自動設置最新的Air和Flex SDK。只要您擁有開發者許可證,您就可以從中創建Air應用程序,並且還可以創建IPA文件以加載到iTunes(或Google Play或其他)中。

請確保您已閱讀@JasonSturges迴應。好的提示和鏈接。

+0

那麼你有一個編譯爲SWF和移動應用程序的代碼庫嗎?或者你有兩條代碼行,一條用於生成SWF文件,另一條用於移動應用程序?我猜這將是後者。 – 2012-07-19 04:19:36

+1

不,這是一個代碼庫,但可能會說有「替代結局」。我使用Flash IDE進行編譯,並使用編譯器條件(「APPDEV :: forIOS」(實際上可以是任何有效的常量名稱)設置爲true或false)以排除代碼段。我認爲你也可以用ADT命令行('-define = APPDEV :: forIOS,true'或'-define + = APPDEV :: forIOS,true'和XML文件中的一些設置代碼)試過了,因爲我也使用Flash的grx功能。 – iND 2012-07-19 04:29:34

相關問題