Я создал файл внешнего манифеста, который содержит список всех ресурсов для предварительной загрузки. Пример:Spritesheet + предварительная загрузка изображения в манифесте
{
\t "path":"assets/",
\t "manifest": [
\t \t {"id":"background", "src":"images/game-background.jpg"},
\t \t {"id":"ui-elements-json", "src":"images/ui-elements.json"}
\t \t
\t ]
}
UI-элементы-JSON является спрайты листа создан в TexturePacker, содержащего различные элементы пользовательского интерфейса. Моя проблема заключается в том, что фактическое изображение не загружается, пока я не создать spritesheet с:
var ss = new createjs.SpriteSheet(preload.queue.getResult('ui-elements-json'));
Это означает, что он не поджат. По крайней мере, я не вижу, чтобы это загружалось в моей панели разработчиков. Я могу вручную добавить изображение в файл манифеста, как так:
{"id":"ui-elements", "src":"assets/images/ui-elements.png"}
Но это почти как если изображение затем получает в два раза загружены, и я начинаю получать некоторые проблемы с производительностью. Если я добавлю «тип»: «spritesheet» в моем манифесте, я вижу, что изображение теперь предварительно загружает, что здорово, но когда я создаю лист спрайтов, я получаю следующую ошибку:
«Неподготовлено TypeError: Can not read property» slice 'of undefined "
Вот упрощенная версия моего спрайта 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]
}
}
Мне просто нужно, чтобы убедиться, что мой спрайт лист изображение prealoded.
Спасибо за ответ. Я действительно попытался использовать SpriteSheetLoader, но когда я создаю новый спрайт, я получаю следующую ошибку: «Неподготовлено TypeError: невозможно прочитать свойство« slice »undefined» – cds
Вам не нужно создавать новый SpriteSheet, как упоминалось в @ Lanny, просто сделайте что-нибудь вроде: 'preload.queue.getResult ('ui-elements-json')', который уже вернет экземпляр 'SpriteSheet'. – derz
var ss = new createjs.SpriteSheet (preload. queue.getResult ('ui-elements-json')); Вот что я делаю сейчас. Ух - у меня так много проблем на мобильном телефоне с частотой кадров/производительности, и я не могу определить причину. Несмотря на то, что я предварительно загрузите изображения для листа спрайтов. Мне также нужно проверить «полное» событие, прежде чем я смогу cac он Контейнеры, в которых я прикрепил свои активы. – cds