- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Starling 中使用 AssetManager 类来加载大量纹理,大约 600-700 个 png 文件。所有文件都没有在启动时加载,我使用多个 AssetManagers 来保存图像。开始时,它会向 3 个不同的管理器加载大约 70 张图像,并且在加载时我在 iOS 上收到一些内存警告。
- iPhone appName[644] : Received memory warning.
- iPhone appName[644] : Application received a memory warning from the system.
- iPhone SpringBoard[74] : Received memory warning.
- iPhone MobilePhone[199] : Received memory warning.
我尝试同时加载它们,并尝试在另一个加载完成时开始每个加载。我也试过 System.gc();和 System.pauseForGCIfCollectionImminent(0.1);在每次加载之间,这解决了 iPhone 5 (7.0.4) 上的问题,但没有解决 iPhone 3gs (6.1.3) 上的问题。
八哥版本:1.4.1
有人知道如何解决这个问题吗?
最佳答案
通常从移动开发的角度来看,从来没有“一刀切”的解决方案。有许多不同的屏幕尺寸和硬件配置。为了解决这个问题,许多开发人员将生成 - 如前所述,Sprite Sheets。使用此方法,应用程序只需加载一张图像,而在您的情况下则为数百张。图像加载器需要很长时间才能连接到内存地址以启动纹理上传到 GPU - 我什至无法想象对于那么多 Assets 来说它必须有多慢。
这texture packer是非凡的,并且还有助于许多开发人员合并的另一个功能。 Assets 密度。在 iPhone 3G 中,开发人员将加载一组为较小屏幕尺寸开发的 sprite 表,而具有两倍大小资源的较大 sprite 表将为平板电脑或某些更高端设备加载。这种方法不仅可以解决您的内存问题,还可以使您的应用程序在更广泛的设备上看起来更好。
这里是 Starling Wiki 的链接 multi-resolution development .
在您可以对项目做出的所有“为了更好”的改变中,上面提到的那些在列表中名列前茅。
关于ios - Starling AS3 : A lot of textures, 内存警告 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20195821/
我是一名优秀的程序员,十分优秀!