我正在为拥有大量资产的浏览器制作游戏,但并非所有这些游戏都需要立即使用。我决定是在编译时嵌入我的资产还是在运行时加载它们。 我不关心加载时间 - 只关注运行期间游戏的性能。
答案 0 :(得分:3)
请参阅此处的示例(启用源视图,下面链接显然“纯AS3”项目在发布版本中选中源视图的框时未正确设置右键菜单):
http://www.shaunhusain.com/DrawTextRandomly/
http://www.shaunhusain.com/DrawTextRandomly/srcview/
在上面的例子中要注意的一些事情,每张图像大约1.5Kb,它为爆炸动画加载了90张图像。一次又一次地使用1个加载器需要大约4秒钟来运行本地我将它增加到使用90个加载器,这样它们都会同时发生并且将其降低到500毫秒,这在我看来是合理的。嵌入需要我为每个图像写出嵌入(我在循环中使用了一个跟踪来完成测试,但是使用图像的运行时性能为零,我认为应该是预期的)和你一样,我不太关心在启动过程中加载条几秒钟,但不想继续添加Embeds,因为它只会使代码变得混乱,所以我要运行时加载(至少现在)。
答案 1 :(得分:3)
它们将消耗RAM,但不消耗CPU周期。游戏中的性能仅在使用所有RAM并且程序需要在硬盘上使用虚拟内存时受到影响。
嵌入式资产位于RAM中,就像上面描述的运行时加载资产一样。但是,它们可能会使用较少的RAM,因为在编译期间编译为SWF字节码时,它们的文件大小可能会减少。
CPU上唯一的性能影响来自加载和实例化过程。
Loader
对象将在收集外部数据时使用CPU周期。已编译的资产已经加载,因此他们赢得了这场战斗。