【问题标题】:Loading a texture more than once in PIXI.js在 PIXI.js 中多次加载纹理
【发布时间】:2017-02-18 03:02:08
【问题描述】:

我正在尝试在 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 留下了一个空数组。

尝试添加一个空的 [] 似乎不会导致回调被调用。所以我检查一下它是否为空,如果它为空,只需调用 setup。但是当我尝试访问纹理时,它会抛出错误。我想是因为它实际上还没有完成纹理加载。

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

【问题讨论】:

    标签: javascript coffeescript pixi.js


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 2018-01-17
      • 1970-01-01
      • 2015-06-08
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      相关资源
      最近更新 更多