![]() |
не работает preventDedault() для TextEvent.TEXT_INPUT
Нужно ограничить ввод в TextInput. Если новый введённый символ делает значение больше допустимого, запрещаем его ввод. (Изменение введённого значения не подходит, такое требование.)
Это не работает: Код AS3:
|
Вам не поможет TextEvent.TEXT_INPUT. В официальной документации это явно не описывается, но для предотвращения ввода на spark:TextInput'e вам стоит слушать TextOperationEvent.CHANGING и превентить ввод по операции указанной в эвенте. Там не указывается каким будет текстовое значение, но определить его можно по самой текстовой операции.
Есть еще один вариант - использовать TextOperationEvent.CHANGE и откатывать текстовую операцию при недопустимом новом значении. Третий вариант как самый дешевый - использовать некоторый контроллер-мидлмэн возвращающий предыдущее значение текстового поля, когда новое не соответствует паттерну. |
Насчёт 3-го варианта я думала, но он какой-то кривой вроде, некрасивый... а вот TextOperationEvent.CHANGING не использую ток потому что не знаю как там увидеть введённый символ..
"но определить его можно по самой текстовой операции." - а как именно? спасибо Добавлено через 10 минут ..2-ой вариант отменяет весь последний ввод, а не последний символ, поэтому не подходит( |
Цитата:
У него нам важны значения absoluteStart, absoluteEnd и text. Соответственно куда вставляем и какой текст. По этим значениям уже явно виден пользовательский ввод. Метод бесспорно нудный и сложный, но 100% действующий. |
Спасибо, такое объяснение и нужно было, хотя уже воспользовалась другим способом:
при событии TextOperationEvent.CHANGING - запоминаю имеющийся текст при событии TextOperationEvent.CHANGE - проверяю новое значение и возвращаю старое, если не подходит. |
| Часовой пояс GMT +4, время: 11:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.