Comunidad de diseño web y desarrollo en internet online

recorrer cuadros de texto con for

Citar            
MensajeEscrito el 17 Abr 2009 01:51 pm
Hola,
quiero crearme un script que saque por el escenario la tabla de multiplicar del 3 (por ejemplo)
Tengo en el escenario los diferentes cuadros de texto dinámicos que mostrarán el resultado (r0, r1, r2.....
r0 mostrará el valor de multiplicar 3 por 0, r1 el de multiplicar 3 por 1 y así sucesivamente..

En código quiero crear un bucle for que se ejecute 10 veces para rellenar los cuadros de texto del escenario.
ejemplo:

for (var contador:int=0;contador<=10; contador=contador+1)
{
this."r"+contador.text=3*contador;
}

No se como hacer para que esa instrucción recorra todos los cuadros del escenario, según corresponda y no tener que meter uno a uno con this.r1.text=3*1......

Espero me podáis ayudar

Gracias

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Abr 2009 04:28 pm
La expresión sería:

this["r"+contador].text=3*contador;

Suponiendo que tuvieras cajas de texto con nombre de instancia r0 ... r10

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 18 Abr 2009 02:39 pm, editado 1 vez

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2009 12:03 pm
Hola Jorge,

Gracias por tu ayuda, pero ya lo he probado y nada de nada......comentarte que trabajo con AS3 ( no se si tendrá que ver con el tema)........¿otra sugerencia?

Gracias

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Abr 2009 02:44 pm
¿Existe una instancia de r0 (r1, r2, etc) en el escenario?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Abr 2009 04:34 pm
Eso es, en el escenario tengo 10 cuadros de texto dinámicos llamados r0, r1, r2.......r10

Saludos

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Abr 2009 04:53 pm
Entonces si pones:

contador = 0
trace(this["r"+contador])

Te tiene que salir la referencia al textfield, ¿correcto?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Abr 2009 05:41 pm
Hola Jorge, nada,nada que soy medio.... :oops: Ya está, todo solucionado; ¡tenías toda razón! Como siempre

En lugar de corchetes, ponía parentesis....mira que lo miraba y miraba, pero no me daba cuenta

Muchísimas gracias, de verdad

Saludos

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Abr 2009 05:48 pm
:shock: mi gozo en un pozo....funciona en AS2 pero no en AS3 ¿porqúé?

Me sale el siguiente mensaje

TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at tablasmultiplicar_fla::MainTimeline/tablasmultiplicar_fla::frame1()


¿Sabes cómo puedo ponerlo en As3?

Muchas gracias por tu paciencia

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Abr 2009 06:26 pm
AS3 en modo estricto hace chequeo de tipos, entonces tienes que hacerle un cast para que no te de error en tiempo de compilación

TextField(this["r"+contador]).text = "Hola amigos"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Abr 2009 11:18 am
Hola de nuevo Jorge, este es el código que pongo:


for (var contador=0;contador<=10;contador=contador+1)
{
TextField(this["r"+contador]).text = "Hola amigos";

};

al ejecutar error que sale:

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at tablasmultiplicar_fla::MainTimeline/tablasmultiplicar_fla::frame1()

¿pongo algo mal?

Gracias

Por Olgayo

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Abr 2009 11:25 am
Parece que no existe, pon esto:

Código ActionScript :

for (var contador=0;contador<=10;contador++){
   trace(this["r"+contador])
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Abr 2009 11:57 am
Hola de nuevo, ya me has dado la solución; he puesto lo que me has dicho y me indicaba todos objeto textField, menos el primero que era undefinided; y es que el cuadro de texto r0 tenía por detras una coma (r0,) y por eso no lo identificaba (tengo que tener más cuidado.....).

Ahora sí que sí ¡alegria, alegria!

Muchísimas gracias Jorge.

Por Olgayo

10 de clabLevel



 

msie7

 

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