我创建了一个外部清单文件,其中包含要预加载的所有资产的列表。例子:
{
"path":"assets/",
"manifest": [
{"id":"background", "src":"images/game-background.jpg"},
{"id":"ui-elements-json", "src":"images/ui-elements.json"}
]
}
ui-elements-json 是在 TexturePacker 中创建的包含各种 UI 元素的精灵表。我的问题是,在我创建 spritesheet 之前,实际图像不会加载:
var ss = new createjs.SpriteSheet(preload.queue.getResult('ui-elements-json'));
这意味着它没有被预加载。至少我看不到它被加载到我的开发者面板中。我可以像这样手动将图像添加到清单文件中:
{"id":"ui-elements", "src":"assets/images/ui-elements.png"}
但这几乎就好像图像被加载了两次,我开始遇到一些性能问题。如果我在清单中添加“type”:“spritesheet”,我可以看到图像现在可以预加载,这很好,但是当我创建 Sprite Sheet 时,我收到以下错误:
“未捕获的类型错误:无法读取未定义的属性‘切片’”
这是我的精灵表 json 的简化版本。据我所知,它的格式正确。
{
"images": ["assets/images/ui-elements.png"],
"frames": [
[511, 2, 1378, 46],
[797, 755, 133, 128],
[871, 885, 133, 128],
[564, 132, 133, 128]
],
"animations": {
"ui-Infobar":[0],
"ui-autospin-down":[1],
"ui-autospin-hover":[2],
"ui-autospin":[3]
}
}
我只需要确保我的精灵表图像是预先加载的。