2017-02-16 383 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(); 加載完成後,回調將被執行。

如果需要,您可以創建加載程序的多個實例並在不同的修補程序中加載圖像。