1

我目前正在尝试优化 AS3/Flash 网络(浏览器)应用程序(FP11+)。这是一个完整的浏览器窗口 Flash 应用程序,可通过(Greensock 的)SWFLoader 远程加载环境/背景图形并将它们添加为位图(下载时间不会导致问题)。其他次要图形,如按钮、处理/加载动画、窗口和 UI 元素是使用 AS3 图形 API 绘制的。

在加载额外的 swf 以在 Flash 应用程序中显示时,我遇到了 FPS 问题(目标是 40)(当加载的 SWF 动画并降为零时,FPS 变化很大)。平均 MB 使用量在 50-100MB 之间(由 FlashProfiler 报告)。

我的问题是:为远程加载的图形和/或绘制的图形实现本地精灵表的使用会显着提高性能吗?

其次,由于 Starling 使用 GPU 进行处理和动画,将应用程序转换为使用 Starling 会显着提升性能吗?

或者,我是否一直专注于最大化循环、列表/向量和数据使用的性能?关于这一点,我读过关于使用数组/列表与向量以及 foreach 与特定于集合的函数(过滤器、映射等)的混合意见。任何直接比较这些技术的经验也会有所帮助。

谢谢!

4

1 回答 1

1

当您有大量位图资产要显示在带有 GPU 以提供加速的计算机或设备上时,Starling 将有很大帮助。如果您使用 Starling,您将通过将各种图像放在一个 sprite 表中来减少 GPU 必须执行的绘制调用次数,从而获得更好的性能。

因此,大量图像加上大量旋转或缩放将充分利用 GPU 的优势。如果您不断地重绘矢量图形或其他画布类型的操作,Starling 可能帮不上什么忙。对于具有不受支持的 GPU 的计算机,它也无济于事。

在您做出位图与渲染决定后,任何实际 AS3 代码的优化都应使用分析器完成。

于 2013-01-03T18:16:52.743 回答