正在加载 JSON 文件未反映更改
Loading JSON file not reflecting changes
我有一个 JSON 文件,用于存储游戏对话。然而,我对这个 JSON 文件所做的更改有时不会反映在我的游戏中,即使在重新加载之后也是如此(为此我一直在使用 ctrl+shift+r 或 shift+F5)。我已确保保存对 JSON 文件的更改。
我在 preload() 中有 this.load.json('dialogue', 'assets/dialogue.json');
,在 create() 中有 this.dialogue = this.cache.json.get('dialogue');
。
当我尝试将内容复制+粘贴到一个新的不同文件(例如对话-2.json),并更新我的 this.load.json() 以反映新文件名时,确实发生了变化已加载。
问题是移相器不会自动开始加载文件,preload
函数除外。
如果你想在其他函数中加载文件你需要调用LoadPlugin
的start
方法。这里的 link to the official documentation.
代码应如下所示:
function create(){
// some code here ...
this.load.json(/* key and file...*/);
// start the loading of the enqueued files
this.load.start();
// some code here...
}
...,应该加载文件。
更新(复制表格评论):
检查 (并作为临时快速修复) 如果您的问题是网络服务器或浏览器的缓存问题,或者...,您可以使用 “动态”Url。
只需将问号和随机数加载到 url 中,以便每次调用 json 时都使用唯一的 Url.
例如:
this.load.json('dialogue', 'assets/dialogue.json?' + Math.random());
如果这解决了问题,则存在缓存问题。它可能在浏览器中,或者仅仅是由 serviceworker 或在网络服务器上引起的。
我有一个 JSON 文件,用于存储游戏对话。然而,我对这个 JSON 文件所做的更改有时不会反映在我的游戏中,即使在重新加载之后也是如此(为此我一直在使用 ctrl+shift+r 或 shift+F5)。我已确保保存对 JSON 文件的更改。
我在 preload() 中有 this.load.json('dialogue', 'assets/dialogue.json');
,在 create() 中有 this.dialogue = this.cache.json.get('dialogue');
。
当我尝试将内容复制+粘贴到一个新的不同文件(例如对话-2.json),并更新我的 this.load.json() 以反映新文件名时,确实发生了变化已加载。
问题是移相器不会自动开始加载文件,preload
函数除外。
如果你想在其他函数中加载文件你需要调用LoadPlugin
的start
方法。这里的 link to the official documentation.
代码应如下所示:
function create(){
// some code here ...
this.load.json(/* key and file...*/);
// start the loading of the enqueued files
this.load.start();
// some code here...
}
...,应该加载文件。
更新(复制表格评论):
检查 (并作为临时快速修复) 如果您的问题是网络服务器或浏览器的缓存问题,或者...,您可以使用 “动态”Url。 只需将问号和随机数加载到 url 中,以便每次调用 json 时都使用唯一的 Url.
例如:
this.load.json('dialogue', 'assets/dialogue.json?' + Math.random());
如果这解决了问题,则存在缓存问题。它可能在浏览器中,或者仅仅是由 serviceworker 或在网络服务器上引起的。