使用Adobe Flex Builder构建iOS应用程序-性能问题

4
我正在使用Adobe Flex Builder为iOS构建应用程序,并使用Adobe的工具将其编译成.ipa文件。
通过初步测试,我发现最终结果不如本地代码丰富,也不如本地代码快速和流畅。
除了简单地说“为什么不使用Objective-C”,是否有文档说明以这种方式构建应用程序的开销?
具体而言,如果使用Adobe平台,可以预期会出现什么样的性能问题?

我投票关闭此问题,因为这是一个非常泛泛的问题。但是,正如@jason Sturges建议的那样,如果您有具体的问题,请通过编辑此问题或发布新的具体问题来详细说明。 - JeffryHouser
关闭问题,因为它们不是非常具体,会阻止有用的答案。今晚我已经第二次看到“Flextras.com”与提出有用问题被关闭联系在一起了。请不要这样做。 - teapot7
2个回答

8
确保您使用最新的AIR 3.0 SDK进行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的比较,需要考虑Flash广泛部署到多个平台的能力,特别是如果你的目标是Android和BlackBerry。也许引用你实现中的具体问题会有所帮助。

AS3中的主要性能问题除了渲染矢量图形之外,AS3中的主要性能问题是什么? - Jason Sturges

6
我也在开发一个基于Flash的iOS应用程序。 我的最初原型在iPad 1上毫无用处。 我不得不寻找优化的方法。 我的第二个原型表现得非常好。 所以这里有一些指针。
1)不要使用计时器。 我不得不编写自己的实用程序“FrameWorker” Singleton类来管理和委托所有我的动画,甚至延迟的操作到单个enterFrame事件。 这本身就会给你带来巨大的速度提升。
2)不要在不同的对象上使用多个enterFrame事件。 如我在第一点中所说,找到一种方法,使用单个enterFrame,您可以添加和删除进程。
3)尽可能避免使用向量 - 使用图像。 如果您需要在Flash IDE或通过操作脚本绘制对象,请使用cacheAsBitmap = true。
4)不要使用远大于屏幕区域的视觉对象。 如果您需要在屏幕上使用大型对象,则将其管理到显示列表之外,并学习blitting技术,仅在该时间显示的矩形绘制到屏幕上。 Lee Brimlow有几个很好的入门教程。
5)非常严格地管理事件。 例如,确保您始终删除不再需要的侦听器。
6)将应用程序的负载分配到不同的帧中。 不要在单个帧上执行太多密集的操作。
如果您遵循这些指针,您的应用程序将与任何其他应用程序一样快。

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