好的,感谢您已经提供的帮助。愚蠢的拼写错误。 我尝试重写代码,但还是不行。
这是我的代码,运行完美:
if (obj != "finished") {
var cmd = "finished = ("+obj+"== target3)";
ggbApplet.debug(cmd);
ggbApplet.setErrorDialogsActive(false);
ggbApplet.evalCommand(cmd);
finished = ggbApplet.getValueString("finished");
if (finished.indexOf("true") > -1) {
ggbApplet.setVisible("step3",true);
}
}
如果我替换这个代码,它就不再起作用了。
function checkpoint(target,step){
if (obj != "finished") {
var cmd = "finished = ("+obj+"== "+target+")";
ggbApplet.debug(cmd);
ggbApplet.setErrorDialogsActive(false);
ggbApplet.evalCommand(cmd);
finished = ggbApplet.getValueString("finished");
if (finished.indexOf("true") > -1) {
ggbApplet.setVisible(step,true);
}
}
}
checkpoint(target3,step3);
我真的不明白我做错了什么。 obj 是在代码中其他地方定义的东西。但我不认为这会引起问题,因为在我尝试将其编写为函数之前,一切都很完美。非常感谢任何进一步的帮助。
最佳答案
除了名称中可能存在拼写错误之外,该函数定义良好,但参数的使用不正确。您将 target
和 step
作为 parameters
传递,但随后不使用这些变量,而是使用 strings
。
ggbApplet.setVisible("step",true);
应该是
ggbApplet.setVisible(step, true);
和
var cmd = "finished = ("+obj+"== target)";
应该是:
var cmd = "finished = ("+obj+"== " + target + ")";
这样您就可以传入目标和步骤的字符串,它们应该正确评估。
范围和全局变量可能存在其他问题,但无法从这一小段代码中看出。
关于javascript - 制作基本功能失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16289973/