从SWF到AIR再到iOS应用程序

7
我有一款现有的Flash应用程序,可以编译成SWF并在Web上运行。 我正在考虑将该应用程序转换为适用于移动设备(如iPhone / iPad)的版本。
我发现现在有一种方法可以在移动设备上发布Adobe Air应用程序。我的想法是,为什么不将SWF转换为AIR应用程序,然后使用该AIR应用程序在移动设备上发布。这个想法有意义吗?是否可能或可行?
人们通常如何将现有的Flash SWF应用程序转换为适用于移动设备的版本?

我认为苹果是允许的。http://www.youtube.com/watch?v=_hkfOk8P79s - dev.e.loper
3个回答

3
这个问题在这里得到了回答,但是为了概括一下,任何Flash内容都可以使用AIR打包到iOS或其他移动设备上。
可以将AIR叠加到Flash Professional或Flash Builder中,也可以使用ADT命令行打包程序来打包SWF文件:
  • Download AIR 3.0 SDK.
  • Assure JRE, or use the one from Flash Builder.
  • Execute adt to package your SWF to an 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文件中。

还有其他考虑因素,例如优化性能和处理多个屏幕分辨率和纵横比。

参考资料:


谈到性能优化,我建议使用当前的AIR 3.3 SDK,因为它比以前的版本表现显著更好。 - AlBirdie

2
有几种方法可以实现这一点:
  1. 您可以下载Adobe AIR SDK,并按照他们的帮助文档此教程操作。如果您对命令行不太熟悉,这种方法可能会有些繁琐,但它可能是最强大的选项,因为您可以调整和控制很多选项。

  2. 如果您有FLA文件,最新版本的Flash CS6应该提供更轻松地创建IOS IPA文件的方法。如果您是Windows用户,则还需要获取p12文件和移动配置文件。 Adobe有关于如何在没有Mac的情况下完成此操作的文档。最终当您的IPA准备好上架AppStore时,您将需要使用Mac。

请记住,SWF的用户体验不能立即很好地转化为iOS。例如,按钮的大小、交互式用户控件的可用性以及最重要的是,鼠标悬停事件有时可能会对移动应用程序的体验产生不利影响。

但这些问题与SWF无关,因为我已经看到类似的问题也存在于其他基于HTML的Web应用程序中。

祝好运,我要说的是编写Flash并且它可以在包括iPhone / iPad在内的所有平台运行,这确实是一个大多数人不知道的惊人之举。


2
我已经做了一年左右的这件事情。
您需要在Mac上使用密钥链设置证书,并从Mac上传应用程序。然而,我没有Mac……相反,我使用(macincloud或其他)租用远程Mac的时间,并使用DropBox来发送文件。
根据SWF是如何创建的,您不一定需要购买Adobe产品。我使用FlashDevelop,它会自动设置最新的Air和Flex SDK。只要您拥有开发人员许可证,就可以从中创建Air应用程序,还可以创建IPA文件以加载到iTunes(或Google Play等)中。
确保您也阅读了@JasonSturges的回复。好的技巧和链接。

那么你是否有一个代码库,可以编译成SWF和移动应用程序?还是你有两个代码分支,一个用于生成SWF,另一个用于移动应用程序?我猜想应该是后者。 - dev.e.loper
1
不,它是一个代码库,但有“备用结局”,可以这么说。我使用Flash IDE编译,并使用编译器条件(APPDEV::forIOS(实际上可以是任何有效的常量名称)设置为true或false)来排除代码部分。我认为你也可以使用ADT命令行来做到这一点(-define=APPDEV::forIOS,true-define+=APPDEV::forIOS,true,以及XML文件中的一些设置代码),但从未尝试过,因为我还使用Flash的grx功能。 - iND

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接