т.е. не ждать, пока клавиша полностью нажата и отпущена.

Я знаю, что этот метод работает в игре, в которую я играю, поэтому я знаю, что это технически возможно.

3 ответа3

3

В Microsoft Windows нажатие кнопки мыши фактически является началом трех отдельных действий:

  1. Обычный щелчок мышью. Последовательность представляет собой «пресс-релиз»

  2. Двойной щелчок. Последовательность "пресс-релиз-пауза-пресс-релиз"

  3. Перетащите и падение. Последовательность "пресс-перетаскивание-релиз"

Как вы видите, чтобы распознать № 2 и № 3, описанные выше, Windows ждет отпускания кнопки мыши и короткой паузы после этого, прежде чем отправит сообщение "мышь была нажата одним щелчком мыши" в приложении. Игры, о которых вы упоминаете, однако, слушают сообщение "мышь была нажата", которое отправляется сразу после нажатия кнопки мыши.

Google Chrome также должен поддерживать двойной щелчок и перетаскивание, поэтому он не может просто предполагать, что нажатие мыши осуществляется одним щелчком мыши. Таким образом, то, что вы просите, вероятно, невозможно.

1

Это просто Не используйте обработчик событий onclick. Вместо этого используйте addEventListener, чтобы прикрепить обработчик к событию mousedown. Вы делаете это в Javascript, а не смешиваете его с HTML-кодом страницы.

Чтобы лучше это понять, прочитайте о быстрых кнопках здесь http://code.google.com/mobile/articles/fast_buttons.html

По сути, людям не нравится, что события onclick запускаются только через 300 мс после события mousedown (то есть mousedown mouseup, подождите немного), поэтому они придумали некоторый код Javascript, чтобы заменить щелчок браузера более быстрым. Прочитав приведенную выше страницу и код быстрой кнопки (который не такой длинный), вы получите более четкое представление о том, как на самом деле работают события Javascript (включая клики).

1

Игры, о которых вы говорите, были запрограммированы специально для такого поведения, а Chrome - нет.

Однако Chrome - это программа с открытым исходным кодом, поэтому можно изменить исходный код и перекомпилировать его так, чтобы он вел себя так, как вам хочется, но для этого потребуются некоторые дополнительные навыки разработчика.

Здесь вы можете получить доступ к исходному коду Chrome: http://www.chromium.org/Home

Это можно было бы включить только через плагин Chrome, если бы Google включил такую функцию уже через API плагина.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .