PDA

Просмотр полной версии : События TextInput? Вставка текста.


Lexa_
16.02.2010, 15:02
Может кто подскажет, какие события генерируются в TextInput при вставке текста? Нужно вводить текст с виртуальной клавиатуры так, чтобы отрабатывали все рестрикшены. Можно конечно при нажатии на кнопку генерировать KeyboardEvent с кодом кнопки, но путь гемморойный и пользоваться им не очень хочется. Дело в том, что при вставке текста из буфера идет корректная обработка. Но поймать это событие чёт не получается. Вижу event ctrl-v и потом сразу идет TEXT_INPUT со всем текстом. Подскажите, что происходит между этими двумя событиями :)

BeDLiNt
16.02.2010, 15:10
Можно конечно при нажатии на кнопку генерировать KeyboardEvent с кодом кнопки
Это как интересно Вы это делаете?
Но поймать это событие чёт не получается.
И для связи с буфером требуется наличие пользовательского события.

Kuruki
16.02.2010, 15:19
Не понял вас, restrict не помогает?

BeDLiNt
16.02.2010, 15:28
Кстати, да. restrict срабатывает при вставки из буфера.

Lexa_
16.02.2010, 16:18
Это как интересно Вы это делаете?
:)
inputControl.dispatchEvent(new KeyboardEvent(bla-bla-bla from docs));

И для связи с буфером требуется наличие пользовательского события.
Я уже пошагово вставку раз сто прошел, но поймать, как буфер передает данные в TextInput не могу.

Не понял вас, restrict не помогает?
Сейчас я делаю так:
this.inputControl.text += text;
При таком подходе не срабатывают.

BeDLiNt
16.02.2010, 16:27
inputControl.dispatchEvent(new KeyboardEvent(bla-bla-bla from docs));
А теперь попробуйте это в своей программе. Или специально для Вас Adobe отменили политику безопасности?

Сейчас я делаю так:
this.inputControl.text += text;
При таком подходе не срабатывают.
Ну так конечно не сработает. Сделайте свой restrict для text. Это же пара строк.

Lexa_
17.02.2010, 14:06
Ну так конечно не сработает. Сделайте свой restrict для text. Это же пара строк.
Своей функцией проверять на лету значение TextEvent.text?

BeDLiNt
17.02.2010, 15:47
Ну вы же сами написали, что добавляете текст следующим образом:
this.inputControl.text += text;
У Вас при таком способе никакого TextEvent-а не возникнет.
Ну и проверяйте на валидность text допустим регуляркой или как хотите.

Lexa_
17.02.2010, 19:59
Ну про TextEvent, это я образно, в моем случае, если идти по этому пути, нужно генерировать Event.CHANGE и вешать на него слушателя с проверкой. Но полей достаточно много, и они разноплановые. Поэтому и хочется сгенерировать событие, по которому добавится текст и отработают все рестрикшены.