2017-02-16 14 views
0

Я пытаюсь обрабатывать загружаемые текстуры в PIXI, которые могут быть уже загружены. PIXI выдает ошибку, если вы попытаетесь загрузить что-то с тем же именем дважды. Сброс кеша текстуры все время не кажется решением.Загрузка текстуры несколько раз в PIXI.js

Вот как я пытаюсь сделать это:

resources_to_load = (texture for texture in @textures(item) when !PIXI.loader.resources[texture]) 
if resources_to_load.length > 0 
    PIXI.loader.add(resources_to_load).load setup 
else 
    setup() 

Проблема у меня в том, что, когда я загрузке текстур для каждого спрайта я отфильтровать все текстуры, которые имеют запись в объект ресурса загрузчика. Но для некоторых спрайтов, которые оставляют их с пустым массивом для resources_to_load.

Попытка добавления пустого [], кажется, не приводит к вызову обратного вызова. Таким образом, у меня есть мой чек, чтобы увидеть, пуст ли он или нет, и если его пустая настройка только вызова. Но затем, когда я пытаюсь получить доступ к текстуре, это вызывает ошибки. Я думаю, потому что он еще не закончил загрузку текстуры.

Так что я пытаюсь выяснить способ вызвать настройку только тогда, когда текстуры фактически закончила загрузку, но я не много удачи

ответ

0

Хммм ... Соскучился, как вы можете использовать погрузчик, например в документации: http://pixijs.download/release/docs/PIXI.loaders.Loader.html? Так это в основном дает вам ответ? Я расскажу немного ниже.

Я имею в виду эту часть: loader.once ('complete', onAssetsLoaded);

Таким образом, вы можете просто установить все ресурсы для загрузки: loader.add ('name', 'http://domain.com/image.png'); Затем установите обратный вызов с помощью: loader.once ('complete', onAssetsLoaded); И в конце просто закажите загрузчик, чтобы начать загрузку изображений: loader.load(); После завершения загрузки будет выполнен обратный вызов.

При необходимости вы можете создавать несколько экземпляров загрузчика и загружать изображения в разные патчи.