2016-02-27 57 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调用,你需要做。