Использование Numpad с ключами-модификаторами демонстрирует любопытное поведение - PullRequest
2 голосов
/ 29 апреля 2009

У меня есть прослушиватель событий клавиатуры, и я слушаю коды клавиш цифровой клавиатуры (от 1 до 9), когда активирована блокировка номера; это отлично работает Однако в моем приложении я также хочу разрешить использование клавиши-модификатора (CTRL) вместе с клавишами цифровой клавиатуры. Странно то, что при удержании CTRL нажатие 1 или 3 не генерирует никакого события клавиатуры, тогда как 2 и 4 - 9 генерируют ожидаемые события. Я видел другие ссылки на эту проблему после некоторого поиска в Google, поэтому я не думаю, что это обязательно относится к Flash, но я пока не нашел никаких ответов.

Я попытался использовать SHIFT в качестве модификатора, но это просто привело к генерации кодов клавиш из цифровой клавиатуры, как будто цифровая блокировка была отключена (например, SHIFT + Numpad1 возвращает код клавиши End, независимо от состояния блокировки номера) - очевидно, это является преднамеренным поведением Windows. ALT не подходит для цифровой клавиатуры из-за альтернативных кодов .

Есть идеи о том, как заставить CTRL + Numpad1 и CTRL + Numpad3 генерировать события клавиатуры? Или любое объяснение, почему они этого не делают?

Редактировать: Я попытался использовать эти комбинации клавиш в Firefox, как предлагает Энрикеин ниже, и все комбинации клавиш работают хорошо, что наводит меня на мысль, что это, скорее всего, проблема, специфичная для Flash, или по крайней мере, не проблема с оборудованием.

Ответы [ 4 ]

0 голосов
/ 13 мая 2009

Некоторые клавиатуры не регистрируют определенные комбинации клавиш. Я думаю, что это связано с тем, как они соединены. Например, некоторые могут зарегистрировать комбинацию клавиш Ctrl + клавиша слева, но не комбинацию Ctrl + клавиша вправо!

Обходным путем будет обнаружение событий нажатия клавиши «вниз» и нажатия клавиши «вверх» для клавиши Ctrl.

Затем можно вызвать пользовательское событие для клавиши Ctrl + numpad или поработать с изменяемым флагом, чтобы показать состояние клавиши Ctrl.

0 голосов
/ 02 мая 2009

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

Попробуйте перечислить все ключевые события и выполнить поиск по тому, на что они отображаются, или google evtest.c, скомпилируйте его и запустите и посмотрите, что он говорит.

0 голосов
/ 08 мая 2009

На самом деле это похоже на свою клавиатуру. Я пробовал комбинации клавиш, когда читал этот вопрос в Firefox, и они вызывали то же событие, что и нажатие клавиш Ctrl + Number (которое переключается на вкладку #Number).

При этом использовалась стандартная английская клавиатура с ключом US / 101 (без дополнительных кнопок мультимедиа или чего-либо еще).

0 голосов
/ 30 апреля 2009

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

...