Firefox сбрасывает переменные при нажатии клавиш? - PullRequest
0 голосов
/ 17 декабря 2011

Я написал небольшую игру на Javascript, которая хорошо работает в Google Chrome и Opera, но в Firefox есть странная ошибка (?).Выглядит как переменные сброса ввода / пробела или я не знаю.

Вот сама игра: http://borcili.fw.hu/game/index.html

После того, как вы запустите мяч и сломаете кирпичи в Firefox, если вы нажмете Enterили оставьте шарик остановленным (установите начальное логическое значение на false) и после повторного запуска шара сбросьте кирпичи.Кстати, если вы проверите код, который вы видите, там нет никакого объявления для клавиш ввода и пробела.Даже если я полностью удалил все операции с клавиатурой, эта ошибка все еще существует.Любое решение "исправить" это или кто-нибудь знает, почему это происходит?За 2 дня я не смог узнать, даже что происходит ... сброс переменной или откат в коде.

Моя единственная идея такова:

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

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

"начал "логическое" решить, должен ли мяч двигаться или возвращаться к середине летучей мыши.В Firefox, если вы нажмете Enter или пробел, шарик просто перемещается всегда назад к середине летучей мыши.Но ввод и пробел должны делать что угодно, но похоже на сброс этого логического значения.

1 Ответ

1 голос
/ 17 декабря 2011

Когда нажимается одна из кнопок для выбора сложности, вы устанавливаете их все на visibility:hidden. Но скрытая видимость не исключает того, что что-то имеет фокус, по-видимому, и, в частности, рассматриваемая кнопка все еще имеет фокус. Нажатие пробела или ввод запускает обработчик нажатия кнопки, который выполняет различные действия, включая сброс игрового поля.

Вы можете проверить это, после того, как кнопки будут скрыты, щелкнув где-нибудь за пределами холста. Это сместит фокус с кнопки, а затем пробел и ввод прекратят делать что-то странное. Нажатие на холст не смещает фокус, потому что сценарий предотвращает действие по умолчанию для этого события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...