2013-04-29 64 views
0

好的,感谢您的帮助,我已经得到了。愚蠢的拼写错误。 我试图重写代码,但它仍然不起作用。使基本功能失效

这是我的代码是完美的作品:

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是代码中定义的其他东西。但是我不会引起问题,因为在我试图将它作为一个函数写入之前,一切都很完美。任何进一步的帮助真的很感激。

+0

当你说“它不工作”时,请添加细节。发生了什么? – 2013-04-29 23:39:17

+0

也许'checkpoint'和'checkpoint' – Xotic750 2013-04-29 23:39:57

+0

在函数中,你还没有声明'obj'。如果这是您希望使用的函数之外的对象,请将其传入。 – Chris 2013-04-29 23:41:37

回答

1

该函数被定义为罚款,除了其名称中可能的拼写错误,但使用参数不正确。您正在通过targetstep作为parameters,但不使用这些变量,而是使用strings代替。

ggbApplet.setVisible("step",true); 

应该

ggbApplet.setVisible(step, true); 

var cmd = "finished = ("+obj+"== target)"; 

应该是:

var cmd = "finished = ("+obj+"== " + target + ")"; 

这样你就可以在目标的字符串和步骤,他们通过应该正确评估。

范围和全局变量可能存在其他问题,但无法从这个小代码片断中看出来。

+0

感谢您的帮助,但它仍然无法正常工作。如果你有时间看看我的新代码,我会非常感激!我编辑了这个问题。 – Kasper 2013-04-30 00:16:45

+0

另一个问题是,当你调用函数时,你需要以字符串形式传递参数。尝试:checkpoint(“target3”,“step3”); – 2013-04-30 00:19:18

+0

哦,我的上帝,它工作,谢谢你SOOOOOOOOOOOOOOO很多! – Kasper 2013-04-30 00:25:20

1

你有两个不同的拼法:

function checpoint() 

checkpoint(target, step1); 

此外,为obj一个全局变量?我没有看到它被定义或传递给函数的地方。

另外,您应该查看浏览器错误控制台以查看在那里报告了哪些错误。这是你应该看的第一个地方,当事情不起作用,因为它会告诉你关于未定义的变量,抛出的异常等...