Цитата:
Сообщение от Яски
Я, кстати, класс поля для вода вещественных чисел писал для своей курсовой. Может кому пригодиться.
|
Ого. А не проще через restrict сделать было?
Типа:

Код:
package gui {
import flash.display.Sprite;
import flash.events.TextEvent;
import flash.text.*;
public class DigitField extends Sprite {
private var text:TextField;
private const DIGITS_ONLY:String="0-9";
private const DIGITS_AND_DOTS:String="0-9.,";
public function DigitField(caption:String = null) {
mouseEnabled = false;
text = new TextField();
addChild(text);
text.x = 0;
text.y = 20;
text.defaultTextFormat = new TextFormat("_typewriter", 14);
text.autoSize = TextFieldAutoSize.NONE;
text.width = 100;
text.height = 20;
text.background = true;
text.border = true;
text.type = TextFieldType.INPUT;
text.addEventListener(TextEvent.TEXT_INPUT, onInput);
text.maxChars = 10;
text.restrict=DIGITS_AND_DOTS;
if (caption != null) {
var label:TextField = new TextField();
addChild(label);
label.text = caption;
label.defaultTextFormat = new TextFormat("Tahoma", 12);
label.selectable = false;
label.autoSize = TextFieldAutoSize.LEFT;
}
}
private function onInput(e:TextEvent):void {
if(e.text.indexOf(".")!=-1||e.text.indexOf(",")!=-1){
e.target.restrict=DIGITS_ONLY;
}else{
e.target.restrict=DIGITS_AND_DOTS;
}
}
public function get value():Number {
var val:Number = Number(text.text.replace(",", "."));
return isNaN(val) ? 0 : val;
}
}
}
Должно работать, не проверял.