我正在使用JavaScript和jQuery设计一个基于网络的“选择你自己的冒险”游戏,并且遇到了我的一个功能问题。基本结构是这样的:
//leftSide, rightSide, thirdOption defined up here
var exampleScene = {
sceneText: "<p>Some narrative text</p>",
optionNames: ["Go Left", "Go Right", "A Third Option"],
linkedScenes: [leftSide, rightSide, thirdOption]
};
function fillBox (scene) {
$("#textBox > *").remove();
$("#textBox").append($.parseHTML(scene.sceneText));
promptPlayer(scene);
}
function promptPlayer (scene) {
for (i = 0; i < scene.linkedScenes.length; i++) {
$("#input > ol").append("<li></li>");
$("#input > ol > li").last().text(scene.optionNames[i]);
$("#input > ol > li").last().click(function () {
fillBox(scene.linkedScenes[i]);
});
}
}
这个想法是显示一个&#34;场景&#34;输出区域中的对象,并在输入区域中生成可单击选项。选项的信息来自&#34;场景&#34;的linkScenes属性。宾语。但是,当它用作fillBox函数中的参数时,对linkedScene属性的引用将变为未定义。
我已经使用console.log()验证了它是否在promptPlayer函数中定义。我也试过将scene.linkedScenes [i]推入一个全局数组并使用其索引作为参数,但这也变得不确定。
我真的被困在这里,任何帮助都将不胜感激。我仍然在学习JavaScript和jQuery,所以任何有助于在将来自行解决这些问题的资源链接也将不胜感激。谢谢!