Firefox在keypress上重置变量?

时间:2011-12-16 20:40:48

标签: javascript firefox

我写了一个小小的Javascript游戏,它适用于谷歌Chrome和Opera,但Firefox中有一个奇怪的错误(?)。看起来像输入/空间重置变量或我不知道。

这是游戏本身: http://borcili.fw.hu/game/index.html

在你开始球并在Firefox中打破一些砖块如果按下输入或空格球停止(将开始的布尔值设置为假)并且在重新启动球之后砖块重置。顺便说一句,如果您检查代码,您可以看到没有任何输入和空格键的声明。即使我完全删除任何键盘操作,这个bug仍然存在。任何解决方案“修复”这个或任何人都知道为什么会发生这种情况?我无法在2天内发现,即使发生了什么......变量重置或在代码中回滚。

我唯一的想法是:

if (started == true) 
{
    ballx += ballmovex;
    bally += ballmovey;
}

//return to the middle of the bat
else 
    ballx = batx + (batw[batc] / 2) - 1; 

“已开始”布尔值决定球是否应移动或移回球棒中间。在Firefox中,如果按下输入或空格,球只会一直移动到球棒的中间位置。但是输入和空间应该做任何事情,但看起来像重置这个布尔值。

1 个答案:

答案 0 :(得分:1)

单击其中一个选择难度的按钮时,将其全部设置为visibility:hidden。但隐藏的可见性并不排除某些具有焦点的东西,显然,特别是所讨论的按钮仍然具有焦点。点击空格或输入会触发按钮的点击处理程序,它会执行各种操作,包括重置游戏板。

您可以在隐藏按钮后单击画布外的某个位置进行测试。这会将焦点从按钮移开,然后空格和输入将停止做任何奇怪的事情。单击画布不会移动焦点,因为脚本会阻止该事件的默认操作。