out 19, 2009

Posted by in Destaque, Interface, Tutoriais | 1 comment

Validando Campos de formulário no Actionscript 3.0

Validando Campos de formulário no Actionscript 3.0

Nesse tutorial vamos trabalhar a validação de dados de um formulário com uma classe que desenvolvi para um projeto que trabalhei.

No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios.

Então agora chega de enrrolação e vamos ao que interessa, lembrando que isso é apenas uma experiência e você deve tentar encontrar formas melhores de fazer isso!

/**
 * @autor: Lucas Marçal
 * @email: inbox@lucasmarcal.com.br
 * @date:  15/05/2009
 * @coment: para adicionar um evento ao modificar o conteudo do campo
 * de texto registrar o evento
 * textInput.addEventListener(Event.CHANGE,clicou);
 * public function clicou (e:Event)
   {
	//trace("Mudando")
   }
 * */
package owinteractive.utils
{
	import flash.display.MovieClip;
	import flash.events.FocusEvent;
	import flash.text.TextField;
	import gs.easing.*
	import gs.*

	public class Validation extends MovieClip
	{
		public var textInput:   TextField;
		public var tipo:        String;
		public  var textStatus:  Boolean;
		public var textOutput:  TextField;
		public var textName:    String;
		public var mcStatus:    MovieClip;
		public var limpar:      Boolean;

		public function Validation (_txtCamp:TextField,_type:String,_txtResp:TextField,_txtName:String,_mcStatus:MovieClip,_clear:Boolean):void
		{
			this.textInput = _txtCamp;
			this.tipo = _type;
			this.textStatus = false;
			this.textOutput = _txtResp;
			this.textName = _txtName;

			if (_mcStatus != null)
			{
				this.mcStatus = _mcStatus;
			}
			this.limpar = _clear;
			this.textInput.addEventListener(FocusEvent.FOCUS_IN, onIn);
			this.textInput.addEventListener(FocusEvent.FOCUS_OUT,onOut);
		}

		public function onIn(f:FocusEvent):void
		{
			//trace("Selecionou " + f.target.name)
			if (this.limpar == true)
			{
				f.target.text = ""
			}
			else
			{
				trace("Não Limpar campo")
			}
		}

		public function onOut(f:FocusEvent):void
		{
			if(this.tipo == "email")
			{
				this.emailValidation(f)
			}
			else
			{
				this.textValidation(f)
			}
		}

		public function textValidation(t:*):void
		{
			if(t.target.text == "")
			{
				//trace("Campo Vazio")
				this.textStatus = false
				this.textOutput.text = "Preencher o campo " + this.textName
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndStop(3)
				}
			}
			else
			{
				//trace("Campo Preenchido")
				this.textStatus = true
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndPlay(2)
					TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );
				}

			}
		}
		public function emailValidation(t:*):void
		{
			var email:String = t.target.text;
			var arroba:Number = email.indexOf("@");
			var ponto:Number = email.lastIndexOf(".");
			var resp:Boolean = arroba > 0 && ponto > arroba;

			if(resp == true)
			{
				//trace("Email Correto")
				this.textStatus = true
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndStop(2);
					TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );
				}

			}
			else
			{
				//trace("Preencher corretamente")
				this.textStatus = false
				this.textOutput.text = "Campo " + this.textName + " incorreto"
				if (this.mcStatus !=  null)
				{
					this.mcStatus.gotoAndStop(3)
				}

			}
		}

		public function getTextStatus():Boolean
		{
			return textStatus
		}
		public function retornaStatus():void
		{
			if (this.mcStatus != null)
			{
				this.mcStatus.gotoAndStop(1);
				this.mcStatus.alpha = 1
			}

		}

	}
}

Abraço a todos


  1. Legal ver que tu começou a postar de novo, xará!
    Já assinei o feed aqui!!

    E só uma coisinha em relação a classe. Acho que esta classe não precisa extender para nenhuma outra. Uma vez que ela não precisa das heranças da classe MovieClip. Vai ecomizar alguns poucos kb, mas pode ajudar.. hehe

    Grande abraço!

Leave a Reply