Phaser如何:更改图像文件

时间:2016-07-01 02:06:32

标签: javascript phaser-framework

我目前正在制作这款游戏​​而且我在处理图片时出现问题。或者我应该说“卸载?”

我有这个图像文件'circle',我使用这个图像文件来创建精灵'ball'。我删除了这个文件'circle'并放入新文件并将其重命名为'circle'。基本上,我更换了它。

但是,当我保存我的工作并刷新我的游戏时,它仍然使用旧文件,虽然它不在我的资产文件夹中了!当我将文件名更改为'circle1'之类的其他内容时,它会突然再次起作用(意味着加载了新图像)。然后当我切换回'circle'时,它会回到旧图像。

game.load.image('circle',       'assets/circle.gif');

P.S。我尝试重新启动计算机和MAMP服务器。

2 个答案:

答案 0 :(得分:1)

这是因为浏览器缓存了资产。基本上,浏览器首先在缓存中查找,看到具有此名称的文件和此URL已经存在,并确定它不需要转向服务器,因此它会显示旧文件。清除浏览器的缓存,您应该会看到新文件。

从Phaser的观点来看,解决方法是在文件中添加简单版本,而不是

game.load.image('circle', 'assets/circle.gif');

您执行以下操作:

var version = 1;
game.load.image('circle', 'assets/circle.gif' + '?' + version);

每次更改资产时都会更改version的值。

答案 1 :(得分:0)

花了一段时间才弄明白。 (仍然不确定)

我认为如果我用图像创建一个新的精灵,它会让新的图像文件替换掉所有旧的精灵。我不知道为什么。如果您知道解决问题的原因或确切方法,请解释我。