如何优化Flash AIR以适配iOS高清屏幕?针对编程的建议。

5

有什么方法可以优化现有的 SWFs 以适应即将到来的视网膜显示屏?或者,在创建新的 SWFs 时有没有准备视网膜显示屏的方法?从我看到和阅读的内容来看,SWFs 看起来相当糟糕。

2个回答

7
一般来说,尽量避免使用位图图像。如果只使用矢量和字体,则可以轻松缩放。避免过度消耗CPU的技巧是在可行时使用cacheAsBitmap,例如,对象不经常更改时。然后您就可以获得矢量grx的分辨率优势,并在初始渲染后获得位图grx的速度。
另一个工具是开始使用Stage3D。此层位于Air程序后面,作为强大的背景。真正的优点是它使用GPU而不是CPU,这意味着您有两个处理器输出grx。如果开发或使用一致的前景和背景系统,则可以提高grx性能。一个几乎准备好的工具是Starling 2D。这应该有助于缩短Stage3D的许多困难领域。我还没有使用过Stage3D,因此很多内容都是推测性的。有更多经验后我会编辑答案。
编辑:@TianzhenLin的回复提供了一些很好的提示。这提醒我,CacheAsBitmapMatrix应该用于将被旋转、缩放等操作但结构不变的对象。

很棒的回答,iND。你对Flex/Flash的了解非常深入。cacheAsBitmapMatrix是一个值得记住的好属性。 - Tianzhen Lin

6
Flex 4.6支持MultiDPIBitmapSource,这将提供一种为不同屏幕密度优化位图的方法。您可以在this link上阅读深入讨论。
通常,如果您的位图用作图标、徽标显示,在其中动画或转换仅限于移动、平移和剪辑,并且您的位图未经缩放,则可以实现最佳显示效果和良好性能。对于此类用途,矢量资产的性能比位图不可预测。
然而,位图并非所有解决方案的万能药。只要涉及任何旋转、扭曲或缩放(缩放和缩小),它们就会对性能产生负面影响,因为系统必须进行更多计算以重新定位每个像素,这比矢量更加复杂。
Stage3D也值得一看,但如果您的使用主要是2D,则明智地选择MultiDPIBitmapSource和矢量图形之间可能是一个更简单的解决方案。

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