2011-12-16 19 views
-1

我写了一个小小的Javascript游戏,在Google Chrome和Opera上运行良好,但Firefox中有一个奇怪的错误(?)。看起来像输入/空间重置变量或我不知道。Firefox按键重置变量?

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

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

我唯一的想法是这样的:

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

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

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

+0

我明白为什么我必须在这里输入正确的代码,但我不确定这是Firefox中代码或“功能”的错误。而且我仍然不知道代码的哪一部分应该修复,因为没有任何代码用于输入和空格键盘,但是仍然会执行某些操作,这就是问题所在......它不应该执行任何操作: ( – Gaboros 2011-12-16 20:57:33

+1

@Gaboros,你说'重置一些变量',也许这意味着你对发生了什么有一个大概的了解,为什么不告诉我们这些变量是什么,并发布设置或使用它们的代码? – 2011-12-16 20:58:34

回答

1

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

您可以通过在隐藏按钮之后单击画布外的某个位置来测试它。这将把焦点移出按钮,然后空间和进入将停止做任何奇怪的事情。点击画布不会改变焦点,因为脚本阻止了该事件的默认操作。