Исходные данные:
Есть текстфилд, редактируемый.
Есть некая функция, которая от множества факторов умеет проверить валидность строки.

Код AS3:
function isValid(s:String):Boolean {...}
Эта функция не умеет выдавать ограничения на ввод, она умеет лишь проверить, допустима такая строка или нет.
При вводе, если получаемое значение не валидно надо проигнорировать нажатие.
Соответственно слушаю TextEvent.TEXT_INPUT. В момент возникновения события текст ещё не изменён, и если событие запревентить то текст не будет изменён.
В ивенте есть поле text в котором содержится вводимый(вставляемый) текст.
Как понять что получится в тексфиле в итоге. Не уж то брать текст из текстфилда, брать позицию курсора и выделения и заменять руками, а потом валидировать, костыль же.
Ещё предлагают запомнить что там было, отловив Change проверить, и если некорректно, то заменить. Ни то ни другое мне не нравится. Есть варианты?