2016-02-27 85 views
2

我想從報告服務器加載圖像,但是當我將它添加到sprite中時,它沒有顯示出來。從移相器中的其他服務器加載圖像資產

preload: function() { 
    game.load.baseURL = 'http://somthing.com/'; 
    game.load.crossOrigin = 'anonymous'; 
}, 
create: function() { 
    var data = new Image(); 
    data.src = sessionStorage.getItem("game_icon0"); 
    game.load.image('newIcon','game_icon0',data); 
    game.add.sprite(0, 0, 'newIcon'); 
}, 

當我嘗試將其加載到遊戲中並沒有出現在那裏。請幫助

+0

你的控制檯拋出錯誤是什麼? –

+0

我想你只需要將第8行'game.load.image'移動到預加載函數。 – BrettJephson

+0

詹姆斯它只是顯示鍵'newIcon'找不到。實際上這裏這個圖標是通過API調用從遠程服務器獲取的。然後我解析它,並將其存入會話存儲。所以在data.src中有一個該圖像的URL –

回答

2

首先,雖然它可能按原樣工作,但最佳做法聲明您應將資產加載轉移到預加載函數中。這確保了它們在使用之前可用。

下一個問題是遠程加載圖像。如果會話項目已經有該項目的URL,我認爲你應該能夠直接加載它。

preload: function() { 
    game.load.baseURL = 'http://somthing.com/'; 
    game.load.crossOrigin = 'anonymous'; 
    game.load.image('newIcon',sessionStorage.getItem("game_icon0")); 
}, 

create: function() { 
    game.add.sprite(0, 0, 'newIcon'); 
}, 

這可能是有意義的處理的信息從會話中抓取一些其他的方式,比如設置變量或創建一個對象,取決於有多少API調用,你需要做。

相關問題