在applab中调试问题

YeetMcgeet

我目前正在appLab上为CS Final创建一个测验创建者,并且我的大部分代码都在工作,尽管我的代码中有一些onEvent行仍在重复,即使我在那里没有循环。我在程序中多次调用了该函数,这可能是它出现故障的原因。我试过重构代码,然后将函数拆分为2个较小的函数,一个处理声明变量,另一个对屏幕进行更改。主要问题是onEvent循环中的代码正在重复,因此我无法添加计数器来计算用户正确或不正确的问题数。我非常困惑,因为过去几天来我一直在尝试修复此错误。首先,它似乎正在工作,但是当您在单击答案之前放慢代码速度时,您会在onEvent行的quiz函数内部看到问题。非常感谢您对我的帮助!

如果您想引用代码(由于某些原因,代码格式无法在堆栈溢出中使用),这是指向我的项目的链接https:// studio.code.org / projects / applab / bzlJBCafMhrd-LAGoqro3nXw8hQ7tJBLxj-N3In9kwo`在这里输入代码`

阿玛利

即使没有循环,我的代码中的一些onEvent行仍会重复

答案可以在Code.org论坛主题中找到关键声明是:

  • 当您调用onEvent()时,它将在后台创建一个新的事件处理程序以响应事件。一旦创建了事件处理程序,就无法摆脱它。重新启动游戏时,旧的事件处理程序仍在后台闲逛,并创建了新的事件处理程序...

在您的情况下,重新启动游戏意味着只需要转到下一个测验屏幕,调用function quiz()您就可以其中调用onEvent()在第二次运行中,quiz()将创建第二个事件处理程序,因此回调函数在三次测验中三次被调用两次,依此类推。因此,为避免这种情况,请不要针对同一UI元素事件重复调用onEvent()。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章