cacheAsBitmap对AIR for iOS中使用scrollRect屏蔽的Sprite没有影响

我正在为AIR for iPad开发一个简单的dynamic菜单UI组件。 它基本上是一个与iOS风格相匹配的combobox的轻量级填充。 我有一个精灵包含任何地方从2到60个项目buttonpopup,让你轻弹/滚动他们,只有在任何给定的时间显示约7项目。

我的第一次尝试使用了一个面具来覆盖我的精灵,在固定的面具下上下移动我的菜单精灵。 这在testing设备(<20fps)上产生了无效的结果。

然后,我尝试了blitting解决scheme,将菜单精灵closures显示列表,并使用BitmapData.draw()仅将部分呈现给需要可见的列表。 这在我的Windows开发平台上产生了最好的结果,但是这一次在iPad上帧速下降到10fps以下。 我假设我正在招致CPU使用税或GPU回读罚款。 原本我希望能够运行我的应用程序60 fps,但是我已经把我的目标下降到更低的30 fps。

这使我在这个UI组件中使用精灵的.scrollRect掩码函数与.cacheAsBitmap结合的第三次尝试。 同样,观察到的行为在Windows与iOS上的AIR之间差异很大。 在Windows上,它只会重新绘制由scrollRect的维度所界定的菜单精灵部分。 使用iOS,我可以触摸屏幕上方或下方的菜单精灵可见区域的区域,即使我的手指在“空”空间,仍然可以拖动菜单! 这里的performance还算不错,在(19 – 25 fps)之间徘徊,如果像在Windows上那样工作的话,几乎肯定会在30以上performance完美。

有没有人有关于AIR for iOS的scrollRectfunction的行为的任何想法,或者在AIR for iOS中实现iOS本机风格滑动菜单的更好方法?

请注意,上述方法在CPU和GPU模式下均已尝试,但CPU模式performance得更好。 我使用安装在Flash Pro CS 5.5之上的AIR 2.7,以及FlashDevelop作为我的IDE。

http://esdot.ca/site/2011/fast-rendering-in-air-3-0-ios-android#comment-10

从上面的链接真的很好的人:“雅,scrollRect基本上是一个不移动的手机,基本上忘记,API甚至存在,不pipe你信不信,老派掩盖是要走的路,我们走了一圈!