我需要创建一个由多个具有透明度的 PNG 组成的图像。我的解决方案在桌面上运行良好,但我想知道我是否可以提高移动设备 (iOS) 的性能。
我目前的解决方案如下:
首先,我将所有图像加载到内存中ImageDecodingPolicy.ON_LOAD
,以避免在加载和解码图像时出现任何 CPU 和延迟。
其次,我将所需的图像加载到Sprite
从未添加到显示列表中的图像中。
最后,我将所有图像组合成一个BitmapData
对象,并将新组合的图像淡入前一个图像。
bitmapData.draw(compositionBufferSprite,null,null,null,rect,false);
我需要合成整个图像(而不是在舞台上没有任何合成的所有 PNG),因为我需要尽可能无缝地从前一个图像过渡到新图像。
我尝试直接使用图像的像素数据等,但是在工作上花费的性能和时间与使用draw()
. 我也尝试使用drawWithQuality()
withStageQuality.LOW
并没有任何区别。我当时的结论是,Air 已经优化了所有位图工作,我draw()
还是直接从BitmapData
.
我曾考虑过创建一个 ANE(本机扩展),但我不知道这是否会带来更高的性能。到目前为止,ANE 似乎只用于访问本机 API,而不是分担工作负载。
您对我如何改进这一点有任何想法吗?