默认情况下,如果您使用 aLoader
加载 PNG 或 JPEG 图像,则图像数据仅在使用时才被解码。这发生在主线程上,当从加载的图像创建位图或纹理时,可能会导致 UI 卡顿。
将图像解码策略标志设置为 可能会有所帮助ON_LOAD
,这将在 Loader 的后台线程中解码图像:
import flash.system.ImageDecodingPolicy;
...
loaderContext.imageDecodingPolicy = ImageDecodingPolicy.ON_LOAD;
loader.load(url, loaderContext);
在LoaderContext 文档中了解有关此主题的更多信息。文档状态ON_LOAD
可能会使用更多内存。
此外,如果您使用的是 Stage3D(Starling、Away3D 等),实际上可能是纹理上传需要时间。GPU 优化是一个完全不同的问题,但您可以在Starling Performance Optimization wiki上进行一些研究。简短的回答是您想要 1) 一次上传所有纹理(例如在加载屏幕期间),2) 您想要将纹理一起批处理到图集中,以及 3) 您甚至可以使用 Adobe ATF 工具压缩纹理以便他们更快地上传并使用更少的 GPU 内存。如果您想了解更多详情,请告诉我。