在PIXI.js

时间:2017-02-16 10:53:20

标签: javascript coffeescript pixi.js

我正在尝试处理可能已经加载的PIXI中的加载纹理。如果您尝试加载两次具有相同名称的内容,则PIXI会抛出错误。一直重置纹理缓存似乎不是解决方案。

以下是我尝试这样做的方法:

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留下了一个空数组。

尝试添加空[]似乎不会导致调用回调。所以我检查它是否为空,如果它是空的只是调用设置。但是当我尝试访问纹理时,它会抛出错误。我想是因为它还没有真正加载纹理。

所以我试图找出一种只在纹理实际完成加载时调用设置的方法,但我运气不好

1 个答案:

答案 0 :(得分:0)

嗯...你错过了如何使用装载机,例如在文档中:http://pixijs.download/release/docs/PIXI.loaders.Loader.html?那么这基本上可以为您提供答案吗?我将在下面详细说明。

我的意思是这部分:loader.once('完成',onAssetsLoaded);

所以基本上你可以设置要加载的所有资源: loader.add(' name',' http://domain.com/image.png'); 然后设置回调: loader.once('完整',onAssetsLoaded); 最后,只需命令加载程序开始加载图像: Loader.load方法(); 加载完成后,将执行回调。

如果需要,您可以创建加载器的多个实例并在不同的补丁中加载图像。