Показать сообщение отдельно
Старый 26.07.2009, 17:17
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 10  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Цитата:
Сообщение от Яски Посмотреть сообщение
Я, кстати, класс поля для вода вещественных чисел писал для своей курсовой. Может кому пригодиться.
Ого. А не проще через 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;
		}
	}
}
Должно работать, не проверял.


Последний раз редактировалось crazyone; 26.07.2009 в 17:31.