Comunidad de diseño web y desarrollo en internet online

Insertar un validador en un DisplayObject

Citar            
MensajeEscrito el 02 Jun 2008 09:46 am
Pues el asunto deja el tema bien claro. Quiero insertar dinamicamente por actionscript unos validadores en objetos de la clase DisplayObject y que se ejecuten en el evento focusOut (vamos cuando se abandone el objeto).

Por ahora he creado una clase que extiende de Validator pero ahora no se ni como insertarla en el DisplayObject ni como llamarla ni si debo redifinir algunos metodos, ni nada...
Ademas los ejemplos que me muestra la pagina de adobe no son exactamente lo que quiero hacer, ya que yo solo quiero utilizar actionscript.

Alguna idea, o alguna pagina que tenga algun tutorial sencillo sobre esto?

Muchas gracias

Por Deschain

20 de clabLevel



Genero:Masculino  

España

firefox
Citar            
MensajeEscrito el 02 Jun 2008 06:11 pm

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
   <mx:TextInput x="56" y="49" id="sa"/>
   <mx:TextInput x="56" y="149" id="sa2"/>   
   
   <mx:Script>
      <![CDATA[
         import mx.validators.NumberValidator;
         function init()
         {
            var miValidador:NumberValidator = new NumberValidator();
            miValidador.property = "text";
            miValidador.source = sa;
            miValidador.requiredFieldError = "Este campo no puede ser vacio !";
         }
      ]]>
   </mx:Script>
</mx:Application>

En ese ejemplo se crea un validador numerico a codigo y se le dice mediante la propiedad source, el componente que el controlara... nada complicado,

Espero sea lo que pides..
^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 02 Jun 2008 11:19 pm
Bueno, el caso es que en principio estoy haciendo mis validadores a pelo, es decir redefiniendo los
métodos. Pero supongo que el fondo sería casi igual.

Lo de las propiedades del validator las entiendo. Lo que no entiendo es por ejemplo si quiero que se ejecute el validador cuando se abandona el campo abría que poner (en tu código):

Código :

focusOut = "miValidador.validate()"


Y en ese caso como funcionan los eventos de los validadores, tendría que añadir un listener al VisualObject que esta en el source del validator...

No sé, todavía no lo tengo muy claro.

Por Deschain

20 de clabLevel



Genero:Masculino  

España

firefox
Citar            
MensajeEscrito el 03 Jun 2008 05:28 pm
Bueno los validadores se disparan exactamente cuando el control que tienen controlado pierde el foco, por ende en el evento focusOUT no debes mandar a hacer una operacion que ya se hace automaticamente por el validador, pero como bien dices, puedes forzar a validarlo, en cualquier otro evento que no sea el focusOUT...


Bueno releyendo tu post, podrias hacer una clase que herede de TextInput y que tenga ya incluido su validacion. Ej:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
   <mx:Script>
      <![CDATA[
         
         function init()
         {
            
            var t:miTextInput = new miTextInput();
            this.addChild(t);
         }
      ]]>
   </mx:Script>
   <mx:Button x="36" y="166" label="Button"/>
</mx:Application>

La clase miTextInput

Código :

package
{
   import mx.controls.TextInput;
   import mx.validators.NumberValidator;

   public class miTextInput extends TextInput
   {
      private var miValidador:NumberValidator = new NumberValidator(); 
      public function miTextInput()
      {
         super();
         miValidador.source = this;
         miValidador.required = true;
         miValidador.maxValue = 300;
         miValidador.requiredFieldError = "Debes poner algo aqui";
         miValidador.property = "text";
      }
      
      public function set misCondiciones(algunParametro:int)
      {
         /* En esta propiedad podrias varia la validacion
         mediante parametros, en fin, lo dejo a tu imaginacion.
         */
      }
   }
}


Espero te sirva de ayuda ^^
salu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.