优化Flash的编程技巧AIR for iOS的视网膜显示?

有没有什么可以做的,以优化现有的视网膜显示屏的SWFs? 或者,无论如何,在创build新的SWF时准备视网膜显示? 从我所看到的和阅读的,SWFs看起来很差。

Flex 4.6支持MultiDPIBitmapSource ,它将提供一种提供针对不同屏幕密度优化的位图的方法。 您可以阅读关于此链接的深入讨论。

一般来说,如果您的位图用作图标,徽标显示(animation或变换仅限于移动,平移和剪切),而您的位图不会缩放,则可以实现最佳的显示效果和下降性能。 对于这种用法,vector资产的性能与位图相比不太可预测。

但是,位图并不是所有解决scheme的灵丹妙药。 只要涉及到任何旋转,失真或缩放(放大和缩小),它们就会对性能产生不利影响,这是因为系统必须做更多的计算才能重新定位每个像素,这与vector相比涉及到更多。

Stage3D也值得研究,但如果你的用法主要是2D,明智地selectMultiDPIBitmapSource和vectorgraphics可能是一个更简单的解决scheme。

一般来说,您希望尽可能避免使用位图graphics。 如果只使用vector和字体,则可以放大而不会出现问题。 避免杀死CPU的技巧是尽可能使用cacheAsBitmap ,例如,当对象不经常改变时。 然后你获得vectorgrx的分辨率优势,并在初始渲染后获得位图grx的速度。

另一个开始研究的工具是使用Stage3D。 这个图层位于Air程序的背后,是一个强大的背景。 真正的好处是它使用了GPU而不是CPU,这意味着你有两个处理器踢出grx。 如果您开发或使用连贯的前景和后台系统,这可以提高您的grx性能。 似乎准备就绪的工具是Starling 2D。 这应该有助于缩短Stage3D的许多难度。 我还没有使用Stage3D,所以很多这是推测。 更有经验时我会编辑我的答案。

编辑

@田振林的回复有一些不错的提示。 它提醒我, CacheAsBitmapMatrix应该用于将要旋转,缩放等的对象,但不会在结构上改变。