Comunidad de diseño web y desarrollo en internet online

Acceder a TextFields creados dinamicamente

Citar            
MensajeEscrito el 10 Ene 2008 12:06 am
Hola, tengo digamos un formulario, con varios textfields creados dinamicamente en un for.
Algo asi:

Código :

for (var i:Number=0; i<10; i++) {
      var mitextbox:TextField = new TextField();
//aca los acomodo en x e y, etc
addChild(mitextbox)
      }


Ahora, necesitaria en otra funcion 'recorrerlos' como para comprobar si los valores cambiaron, etc.

No se puede hacer algo asi al momento de declararlos?

Código :

for (var i:Number=0; i<10; i++) {
      var mitextbox + i:TextField = new TextField();
//aca los acomodo en x e y, etc
addChild(mitextbox + i)
      }


Desde ya muchas gracias.

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 10 Ene 2008 02:21 pm
Hola selecters75,
No se si creo entender que quieres hacer, pero te facilito este codigo haber si te sirve.

Código :

// creamos los TextField que queramos.

var texto1:TextField = new TextField;
var texto2:TextField = new TextField;
var texto3:TextField = new TextField;



//los colocamos donde queramos.

texto1.y = 0;
texto2.y = 20;
texto3.y = 40;

//lo montamos en el stage.
addChild (texto1);
addChild (texto2);
addChild (texto3);

//anotamos el contenido
texto1.text = "texto1";
texto2.text = "texto2";
texto3.text = "texto3";


Espero haberte sido de ayuda.

David López
http://www.davidlopezgamero.com

Por davidlopezgamero

Claber

134 de clabLevel



  Héroes

Port de la Selva - GIRONA

msie7
Citar            
MensajeEscrito el 10 Ene 2008 02:35 pm
Hola David, Gracias por contestar.
Esta bien tu codigo, pero no es lo que quiero hacer, tal vez no me explique bien. vos declaras tres TextField, con nombres distintos, y por eso podes acceder a ellos independientemente.
Yo declaro (y necesito hacerlo asi ya que no se realmente si necesito 10 TextField o 2 o 20, se entiende?) y agrego cada TextField en un bucle for. Asi:

Código :

for (var i:Number=0; i<10; i++) {     
 var mitextbox:TextField = new TextField();
//aca los acomodo en x e y, etc
addChild(mitextbox)      }


o sea, cada uno de esos se llama mitextbox. Si necesitara establecerle algo, ej el text, al hacer mitextbox.text = "este es el texto" supongo me lo asigne a todos. Lo que necesito saber es como hacer algo como esto (que no funciona, fijate que a cada uno le agrego el i al declararlos):

Código :

for (var i:Number=0; i<10; i++) {  
var mitextbox + i:TextField = new TextField();
//aca los acomodo en x e y, etc
addChild(mitextbox + i)      }


En AS2, por ejemplo con createMovieClip, habia un segundo parametro que lo daba el nombre de la pelicula, donde se podia hacer lo que necesito: "nombre_de_la_pelicula" + i
De esa forma despues se podian recorrer en otro bucle esa movies o refenciarlas directamente asi: nombre_de_la_pelicula1.propiedadX = "propiedad"

Se entiende ahora lo que necesito?

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 10 Ene 2008 10:59 pm
podría ser algo así:

Código :

var cajas:Array = new Array();
var i:Number = 0;
for (i=0; i<10; i++) {
   cajas[i] = new TextField();
   cajas[i].text = "Caja " + i;
   //aca los acomodo en x e y, etc
   addChild(cajas[i])
}
for (i = 0; i<10; i++) {
   trace(cajas[i].text);
}


saludos! :wink:

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 11 Ene 2008 12:04 am

master_of_puppetz escribió:

podría ser algo así:

Código :

var cajas:Array = new Array();
var i:Number = 0;
for (i=0; i<10; i++) {
   cajas[i] = new TextField();
   cajas[i].text = "Caja " + i;
   //aca los acomodo en x e y, etc
   addChild(cajas[i])
}
for (i = 0; i<10; i++) {
   trace(cajas[i].text);
}


saludos! :wink:


Perfecto! eso funcionaria, metiendo todos los textbox en un array. De todos modos, no se extraña esa cosa mas dinamica y permisiva que tenia AS2?

Saludos y gracias!

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 11 Ene 2008 02:05 am
Con getChildAt y numChildren, podrías hacerlo sin usar un Array.

Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 11 Ene 2008 03:10 am

Dano escribió:

Con getChildAt y numChildren, podrías hacerlo sin usar un Array.

Saludos


Muy buena solucion esa!
Me gusto, la voy a probar tambien. Gracias!

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7

 

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