我正在使用Adobe Flex构建器为iOS构建应用程序,并使用Adobe工具将其编译为.ipa。
通过初步测试,我发现最终结果并不像本机代码那样丰富,也不是那么快或顺利。
如果不简单地说'为什么不使用objective-c',那么有没有关于以这种方式构建应用程序的开销的文档?
具体来说,使用Adobe的平台可以期待什么样的性能?
答案 0 :(得分:8)
确保使用最新的AIR 3.0 SDK for iOS打包。它的性能显着提高。
在开发应用时考虑最佳做法:
http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html
http://help.adobe.com/en_US/as3/mobile/flashplatform_optimizing_content.pdf
http://www.mikechambers.com/blog/files/presentations/fitc_amsterdam_2010/flash_iphone_fitc_2010.pdf
与原生Objective-C的毯子比较是一个广泛的主题,如果您的目标是Android和BlackBerry,那么也应该考虑将Flash无处不在地部署到多个平台的功能。
或许引用您实施的具体问题有助于提供洞察力。
答案 1 :(得分:6)
我也一直在开发基于Flash的iOS应用。我的初始原型在iPad 1中没用。我必须寻找优化方法。我的第二个原型表现相当不错。所以这里有一些指示。
1)不要使用计时器。我不得不编写自己的实用程序“FrameWorker”Singleton类来管理和委托我的所有动画,甚至将动作延迟到单个enterFrame事件。仅这一点就会给你带来巨大的速度提升。
2)不要在不同的对象上使用很多enterFrame事件。正如我在第一点所述,找到一种方法来使用一个可以添加和删除进程的单个enterFrame。
3)尽可能避免使用矢量 - 使用图像。如果需要在Flash IDE中或通过操作脚本绘制对象,请使用cacheAsBitmap = true。
4)不要使用比屏幕区域大得多的视觉对象。如果您需要在屏幕上使用大型对象,请在显示列表中管理它们并学习blitting技术,以便仅在当时将显示的rect上绘制到屏幕。 Lee Brimlow有几个很好的入门教程。
5)对管理事件要非常自律。确保总是删除不再需要的侦听器。
6)将应用的负载分配到不同的帧。不要在一个框架上做太多密集的事情。
如果您按照这些指示操作,那么您的应用程序将与其他应用程序一样快。