Я создаю виртуальную клавиатуру для приложения Flex с сенсорным экраном и пытаюсь имитировать нажатие клавиши, отправляя KeyboardEvent. Я написал функцию-обработчик, чтобы отслеживать событие и действовать соответствующим образом. Пока все хорошо ... но это начинает усложняться, так как мне нужно управлять сфокусированными textInputs (легко), положением курсора в этих полях (не так просто) и т. Д. Теперь, если бы только был способ на самом деле отправьте событие KeyboardEvent, которое Flex будет интерпретировать как настоящее нажатие клавиши, все эти проблемы исчезнут ... Возможно ли это?
Flex: имитация нажатия клавиш
comment
Я не уверен, что полностью понимаю здесь поток управления. Таким образом, пользователь коснется (то есть щелкнет) одной из кнопок на клавиатуре. Это сгенерирует событие щелчка, из которого вы сгенерируете KeyboardEvent, которое затем скажет текстовому полю добавить этот символ и переместить курсор. Это правильно? И место, где у вас возникла проблема, - это когда вы генерируете KeyboardEvent, текстовое поле не обновляется?
- person Dan   schedule 26.08.2009
comment
Да, это правильно. Я могу это сделать, но с помощью обработчика KeyboardEvent ... если вместо этого я просто отправлю событие (с фокусом на TextInput), ничего не произойдет.
- person Tiago Pereira   schedule 26.08.2009
comment
На какой компонент вы отправляете KeyboardEvent? Я думаю, чтобы все работало правильно, вам нужно отправить событие в текстовый компонент с фокусом, то есть: myFocusedTextComponent.dispatchEvent (myNewlyCreatedKeyboardEvent)
- person Dan   schedule 26.08.2009
comment
Мое решение не сработает, см. Ответ Питера ниже.
- person Dan   schedule 26.08.2009
Ответы (1)
TextInput не использует KeyboardEvent / TextEvent для ввода текста, он использует внутренние объекты Flash TextField, которые взаимодействуют с Flash Player / Keyboard.
KeyboardEvent используются для включения уведомления о произошедшем событии клавиатуры.
Чтобы имитировать клавиатуру, вам нужно будет создать класс, который при получении KeyboardEvent будет соответственно изменять текстовое свойство TextInput и позицию курсора.
Alex Harui написал аналогичное сообщение об этом сообщении FlexCoders
person
Peter Dolukhanov
schedule
26.08.2009