Нужно ограничить ввод в TextInput. Если новый введённый символ делает значение больше допустимого, запрещаем его ввод. (Изменение введённого значения не подходит, такое требование.)
Это не работает:

Код AS3:
_inputWidth = new TextInput();
_inputWidth.restrict = "0-9";
_inputWidth.addEventListener(TextEvent.TEXT_INPUT, onChangingWidth);
private function onChangingWidth(e:TextEvent):void{
var value:Number = parseInt(_inputWidth.text + e.text);
if(value > 8000)
{ //заходит сюда
trace(e.cancelable); //выводит true
e.preventDefault(); //введённый символ всё равно отображается!
}
}