Comunidad de diseño web y desarrollo en internet online

Listener a varios inpu text

Citar            
MensajeEscrito el 01 Sep 2011 08:21 pm
Buenas tardes.
Estoy comenzando con AS3 (conocía un poco de AS2) y antes para conocer cuando un input text cambiaba cuando el usuario escribia algo utilizaba la funcion onChanged.
Ahora en AS3 veo que no existe y ay que poner un listener, lo cual no me causa problema cuando es un solo input, el problema es que tengo un MC con un input dentro y este MC lo duplico varias veces y solo cambio el nombre pero no se como distinguir uno de otro, ¿sera que necesito agregar una funcion para cada uno?, ¿no es posible hacerlo como un menú que se conoce el label o algo por el estilo?

Mas explicado tengo

Código ActionScript :

function cambiarTxt(e:Event):void {
   trace(e.currentTarget.name);
}

iNombre.dato.addEventListener(Event.CHANGE, cambiarTxt);
iParerno.dato.addEventListener(Event.CHANGE,cambiarTxt);
iMaterno.dato.addEventListener(Event.CHANGE,cambiarTxt);


los tres son un mismo MC con un input que llamo dato, lo duplico y le cambio el nombre de instancia pero siempre obtengo el mismo resultado que es "dato".
Me gustaria obtener un

iNombre.dato

o mejor aun asignar un value y a iNombre y obtener ese valor, pero no se como.

Código ActionScript :


iNombre.value = 1;
iParerno.value = 2;
iMaterno.value = 3;

function cambiarTxt(e:Event):void {
   // Aqui como obtengo ese value o el MC principal
}

iNombre.dato.addEventListener(Event.CHANGE, cambiarTxt);
iParerno.dato.addEventListener(Event.CHANGE,cambiarTxt);
iMaterno.dato.addEventListener(Event.CHANGE,cambiarTxt);



Saludos y gracias

Por eder

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Sep 2011 09:02 pm
Tienes automáticamente una referencia al origen mediaante la propiedad target, por ejemplo si quisieras trazar el contenido del campo harías

Código ActionScript :

function cambiarTxt(e:Event):void { 
  trace(TextField(e.target).text)
} 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Sep 2011 09:03 pm
Mirando un poco por encima la documentación de Adobe online, creo que lo que pasa es que debes usar target en lugar de currentTarget, no estoy muy seguro de esto. Aunque siempre puedes usar una función diferente para cada listenner

http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/events/Event.html#target

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Sep 2011 09:05 pm
Sorry Jorge, no me había dado cuenta que ya le habías contestado, me he entretenido demasiado leyendo la documentación

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Sep 2011 08:19 pm
Jorge y Cagarnera les agradesco el tiempo y si vi lo de usar el target o currentTarget

Utilize el codigo de

Código ActionScript :

trace(TextField(e.target).text) 

pero el resultado que obtengo es el texto que estoy escribiendo y lo que busco es obtener el MovieClip del input donde estoy escribiendo o mejor aun el value del MovieClip
Algo asi como un

Código ActionScript :

trace (_panret.e.target)
trace (_panret.e.target).value


Si vi lo de utilizar diferentes funciones para cada uno pero son como 30 campos de texto y solo necesito saber si tienen datos y creo que si logro obtener ese value podría ser mas practico

Saludos y Gracias

Por eder

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Sep 2011 08:23 pm
Pruebalo, recuerda que es parent

trace (e.target.parent)

Si es un MovieClip te lo va a trazar, entonces puedes acceder a una propiedad

MovieClip(e.target.parent).propiedad

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos



Ultima edición por solisarg el 05 Sep 2011 03:47 pm, editado 1 vez

Argentina

firefox
Citar            
MensajeEscrito el 03 Sep 2011 11:35 am
elder, si lo que quieres es el nombre del MovieClip que ha generado el evento debes usar

e.target.name que es un strig

prueba trace(e.target.name) y verás como te muestra el nombre que le has asignado a cada movieClip

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2011 11:47 am
Dado que el listener está en el TextField, le dará el nombre del textfield

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Sep 2011 03:36 pm
pues ya de mucho buscarle y hacer prebas y entendiendo que el listener se activa sobre el input y lo que me dicen de usar parent en lugra de _parent logre obtener mi resultado

para obtener el MC que contiene el input Text es

Código ActionScript :

trace((e.target).parent.name);

ya con esto puedo obtener tanto el nombre del MC como sus propiedades

Saludos y ojala a alguien mas le sirva (ya hasta un tutorial quiero hacer... jajaja)

Por eder

10 de clabLevel



 

chrome

 

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