在我的程序中我有一个变量
untangleGame.levels =
[
{
"level" : 0,
"circles" : [{"x" : 400, "y" : 156},
{"x" : 381, "y" : 241},
{"x" : 84, "y" : 233},
{"x" : 88, "y" : 73}],
"relationship" : {
"0" : {"connectedPoints" : [1,2]},
"1" : {"connectedPoints" : [0,3]},
"2" : {"connectedPoints" : [0,3]},
"3" : {"connectedPoints" : [1,2]}
}
},////////****** More Levels****///////
]
而且我必须将此变量存储在文本文件中。我创建了一个函数
function loadDoc() {
var client = new XMLHttpRequest();
client.open('GET', '/KB/canvasAts/levels.txt');
client.onreadystatechange = function() {
if (client.readyState == 4 && client.status == 200)
{
untangleGame.levels = JSON. parse (client.responseText) ;
}
}
client.send();
}
警报功能显示文本,但是仍未设置变量,并且在行中收到错误消息“未捕获的TypeError:无法读取未定义的属性'0'” var level = untangleGame.levels[untangleGame.currentLevel];
您需要将文本解析为JSON。
替换这条线
untangleGame.levels = client.responseText;
和
untangleGame.levels = JSON.parse(client.responseText);
你需要早一点 if condition
if (client.readyState == 4 && client.status == 200)
{
alert(client.responseText);
untangleGame.levels = JSON. parse (client.responseText) ;
}
您遇到错误
Uncaught TypeError: Cannot read property '0' of undefined
因为如果在client-responseText作为if-condition的时间之外,则可能尚未填充您的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句