Comunidad de diseño web y desarrollo en internet online

Campo Texto - Array

Citar            
MensajeEscrito el 26 Abr 2007 12:09 pm
Buenas... tengo una duda...
¿como puedo generar multiples "campos de textos", mediante códigos en actionscript?.
es decir, puedo generar un campo mediante este codigo:

this.createTextField("CEDULA", 1, 50, 50, 100, 200)

y ese campo tendra el nombre de "CEDULA", pero ¿como puedo generar "N" campos?
Un ejemplo, es que en una casilla, el usuario coloque el numero 3, entonces, actionscript haga 3 campos... o el usuario coloque 5, entonces se generaran 5 campos.

No se si me explique...
Gracias por su atención.

Por joches

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Abr 2007 12:47 pm
Hola, pues lo vas a tener que hacer con un for... algo así como:


Código :

function clickButton()
{
   fncreateTextFields(Number(txtMyTextField.text),_parent);
}

function fncreateTextFields(pintTextFields:Number,mcBaseLine:MovieClip)
{
   for(i:Number=1; i<=pintTextFields; i++)
   {
      intPosX:Number   = 20;
      intPosY:Number   = i*100;
      intWidth:Number  = 100;
      intHeight:Number = 20;
      mcBaseLine.createTextField("txtCedula"+i, mcBaseLine.getNextHighestDepth(), intPosX, intPosY, intWidth, intHeight);      
      eval("txtCedula"+i).text = "Hola yo soy el txtField "+i;
   }
}

Donde en la funcion de fncreateTextFields le mando como parámetro el numero de textfields que quiero que sean creados y el objeto de mayor profundidad, o el cual te va a servir como linea base (por eso BaseLine) que me de como referencia la profundidad maxima disponible para que no colisione con otro objeto, espero te sirva.. por que en este momento no tengo el flash instalado en la computadora en donde estoy, aunque no creo que tenga problemas... bueno eso espero :oops: ... pero esa sería la manera en la cual yo crearía los N textfields definidos por el usuario.
Saludos.

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

msie
Citar            
MensajeEscrito el 26 Abr 2007 02:14 pm
Listo.. Gracias por tu ayuda... hacia falta acomodar ciertos detalles, pero listo.. gracias. No se porque no me daba antes, pero fino.. agrego el código modificado por si alguien lo necesite..

fncreateTextFields(4); // el 4 es la cantidad de campos de texto a generar

function fncreateTextFields(pintTextFields:Number){
for(i:Number=1; i<=pintTextFields; i++){
var intPosX:Number = 20;
var intPosY:Number = i*50;
var intWidth:Number = 200;
var intHeight:Number = 20;
this.createTextField("txtCedula"+i, i, intPosX, intPosY, intWidth, intHeight);
eval("txtCedula"+i).text = "Hola yo soy el txtField "+i;
}
}

Por joches

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Abr 2007 11:50 pm
Hola.. pues creo que me faltaba definir el textField como input, por que si no, solo iba a tener el texto estático, pero este sería el codigo final ahora si funcionando, ahora si lo hice en el flash. :)

Código :

btnClick.addEventListener("click",clickButton);
function clickButton()
{   
   if (txtMyTextField.text != "" )
   {      
      fncreateTextFields(Number(txtMyTextField.text),this._parent);
   }
}

function fncreateTextFields(pintTextFields:Number,mcBaseLine:MovieClip)
{
   trace(pintTextFields);
   trace(mcBaseLine);   
   for(i:Number=1; i<=pintTextFields; i++)
   {
      var intPosX:Number   = 20;
      var intPosY:Number   = i*20+5;
      var intWidth:Number  = 200;
      var intHeight:Number = 20;
      mcBaseLine.createTextField("txtCedula"+i, mcBaseLine.getNextHighestDepth(), intPosX, intPosY, intWidth, intHeight);      
      eval("txtCedula"+i).text = "Hola yo soy el txtField "+i;
      eval("txtCedula"+i).type = "input";
   }   
}


Saludos.

PD... Disfruta mientras puedas la funcion de eval, en lo particular era una de mis favoritas, pero en AS3 ya no existe :crap:

Por zelgadiss01

87 de clabLevel



 

The Silent Hills

firefox

 

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