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

Wil*_*ith 5 air flash actionscript-3 ios retina-display

是否可以采取任何措施来优化现有的SWF以应对即将到来的视网膜显示波?或者,无论如何,在创建新SWF时是否准备视网膜显示?从我所看到和阅读的内容来看,SWF看起来非常糟糕.

iND*_*iND 7

通常,您希望尽可能避免使用位图图形.如果您只使用矢量和字体,这些可以毫无问题地向上扩展.避免杀死CPU的技巧是cacheAsBitmap在可行时使用,例如,当对象不经常改变时.然后你获得了矢量grx的分辨率优势,并在初始渲染后获得位图grx的速度.

另一个开始研究的工具是使用Stage3D.这一层位于Air计划的后面,充当了强大的背景.真正的优势在于它使用GPU而不是CPU,这意味着你有两个处理器放弃了grx.如果您开发或使用连贯的前景和后台系统,这可以提高您的grx性能.似乎已经准备就绪的一个工具是Starling 2D.这应该有助于缩短Stage3D的许多困难领域.我还没有使用Stage3D,所以很多都是推测性的.我会在更有经验的时候编辑我的答案.

编辑

@ TianzhenLin的回复有一些不错的提示.它提醒我CacheAsBitmapMatrix应该用于旋转,缩放等物体,但不能在结构上改变.


Tia*_*Lin 6

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

通常,如果您的位图用作图标,徽标显示,其中动画或变换仅限于移动,平移和剪裁,并且您的位图不会缩放,您将获得最佳显示结果和下降性能.与此用法的位图相比,矢量资产的性能更难以预测.

但是,位图不是所有解决方案的银子弹.一旦涉及任何旋转,扭曲或缩放(放大和缩小),它们会对性能产生负面影响,这是因为系统必须进行更多计算才能重新定位每个像素,与矢量相比,这涉及更多.

Stage3D也值得研究,但如果您使用的主要是2D,明智地选择MultiDPIBitmapSource和矢量图形可能是一个更简单的解决方案.