У меня есть интерфейс, который должен реагировать на "длительные нажатия клавиш". Это означает 2 различных действия для одного и того же ключа в зависимости от того, как долго он был выключен:
НАЖМИТЕ ЛЕВЫЙ КУРСОР: действие A
НАЖМИТЕ И ДЕРЖИТЕ ЛЕВЫЙ КУРСОР: действие B
Ну, это оказалось сложнее, чем я думал. Основная проблема заключается в том, что и Keyboard.KEY-DOWN, и Keyboard.KEY-UP срабатывают непрерывно, если удерживать клавишу нажатой. Это выглядит странно для меня, хотя может иметь смысл, если вы думаете о вменении текста (если вы вводите текст и удерживаете клавишу, он начинает заполнять пространство).
Когда я пытался решить проблему, я думал о запуске счетчика на KEY-DOWN и обнулении его на KEY-UP. Затем, если он достиг определенного порога, происходит событие. Проблема в том, что счетчик сбрасывается сразу, потому что они запускают событие KEY-UP постоянно.
Мне известны классы опроса клавиатуры, такие как BigRoom и Senocular , но они не решают проблему, поскольку основывают свой статус на тех же событиях .
Я мог бы пойти на таймеры, запускающие таймер на KEY-DOWN, и через x миллисекунд проверять, не выключен ли ключ, но это предполагает, что ключ все время выключен. Я не думаю, что это будет надежно.
И вот с этого момента у меня заканчиваются идеи. Есть ли гораздо более простой метод, который я пропустил? Я надеюсь, что есть!
Спасибо
Juan