Adobe Air — Starling/Feathers — Ввод текста без хуков на уровне ОС (он же StageText)?

Короче говоря, я всегда сталкиваюсь с непредсказуемым StageText в приложениях Adobe AIR. Я хочу избежать запуска собственных полей ввода ОС и напрямую эмулировать эту функциональность в компоненте Feathers/Actionscript.

Я включил экранную клавиатуру исключительно в Feathers и реализовал подкласс Button, который действует как обычный текстовый ввод. Когда пользователь нажимает кнопку, отображается экранная клавиатура, а клавиши KEYUP аппаратной клавиатуры перехватываются и используются для динамического обновления атрибута метки кнопки.

Все это работает достаточно хорошо, но, конечно, у меня нет мигающего курсора или возможности выбора текста в моем текущем элементарном виджете. Я могу продолжить свой текущий путь и вручную реализовать все остальное, что мне нужно, но хотел спросить, видел ли кто-нибудь или реализовывал неродной виджет ввода текста с «нативным действием» в техническом стеке Feathers/Starling/Actionscript? (Кажется, Google говорит «нет», но я надеюсь, что это не так. Конечно, я не единственный, кто думает, что StageText AIR… в лучшем случае хлопотный…)


person slumtrimpet    schedule 08.05.2013    source источник


Ответы (1)


Я изменил свой элементарный виджет с подкласса Button на TextInput с фабрикой редакторов, возвращающей пользовательский flash.text.TextField, в котором SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING блокируется с помощью preventDefault().

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

person slumtrimpet    schedule 10.05.2013