Comunidad de diseño web y desarrollo en internet online

formulario dinamico con as y flex

Citar            
MensajeEscrito el 03 Nov 2009 11:43 pm
hola espero me puedan ayudar

estoy haciendo un formulario de registro en flex en el cuan manejo un campo de integrantes que es un number

el chiste es que despues de esto me tiene que generar un formulario de datos de los integrantes en base a los que se ponen en el campo es decir si el usuario pone 5 integrantes al hacer aceptar debe de ingresar un formulario con 5 campos para el nombre y 5 para el correo electornico.

etoy utilizando un viewstack para pasar de un formulario a otro pero no me genera los campos del segundo formulario

espero me puedan ayudar
dejo mi codigo
[code]
public function formIntegrantes():void
{
//Alert.show("prueba de que ejecuata la accion");
var etiqueta:Label = new Label();
var inputField:TextInput = new TextInput;
var Y:Number =5;

for(var i:Number=0; i<Number(nointegrantes.text); i++)
{

etiqueta.text="Integrante "+Number(i+1);
etiqueta.x=10;
etiqueta.y=(Y+10);
etiqueta.id="Label"+Number(i+1);
integrantes.addChild(etiqueta);

inputField.id="InInte"+Number(i+1);
inputField.x=30;
inputField.y=(Y+10);
integrantes.addChild(inputField);

}

}

<mx:Canvas label="integrantes" width="100%" show="formIntegrantes();" height="100%" id="integrantes">
[/code]
nointegrantes es el id del campo donde el usuario ingresa el numero de integrantes


por favor ayuda
gracias

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2009 11:56 am
Haz puesto un Alert para ver si se ejecuta ... ¿se ejecuta el código? Luego de hacer el addChild traza:

trace(etiqueta)
trace(inputField)

¿Salen los elementos o undefined?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Nov 2009 03:24 pm
gracias por contestar solisarg

incorpore los trace en el como me cometas pero me mada este error y no tengo idea del porque


stagewarriors0.mostardata.integrantes.Label166
stagewarriors0.mostardata.integrantes.TextInput167
RangeError: Error #2006: El índice proporcionado está fuera de los límites.
at flash.display::DisplayObjectContainer/addChildAt()
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::$addChildAt()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:4982]
at mx.core::Container/addChildAt()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2208]
at mx.core::Container/addChild()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\Container.as:2140]
at stagewarriors/formIntegrantes()[E:\wamp\www\dw\stagewarriors\src\stagewarriors.as:212]
at stagewarriors/__integrantes_activate()[E:\wamp\www\dw\stagewarriors\src\stagewarriors.mxml:36]

no se aque se refiere cuando dice el indice proporcionado esta fuera de los limites

alguna pista ????

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2009 03:31 pm
Bueno, el trace solo muestra, no creo que sea el orígne del error, mira el stack, ¿ que tienes en Container.as linea 2208 ?(y 2140)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Nov 2009 05:16 pm
ya revise el error esta en el adchild voy a seguir investigando por el error de codigo si tienen alguna idea de como solucionarlo se los agradecere

de antemano gracias

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2009 11:02 pm
ya quedo resuelto gracias les paso el tip


en teoria era por que a la misma variable le metia diferentes parametos es decir

a etiqueta e inputField los declarava fuera del codigo y por eso addChild no podia funcionar.

los ingrese al for con un nombre de variable diferente y funciono

dejo el codigo para qien tenga el mismo problema vea una solucion sencilla

public function formIntegrantes():void
{
//Alert.show("prueba de que ejecuata la accion");

var Y:Number =5;


for(var i:Number=0; i<Number(nointegrantes.text); i++)
{
//Alert.show(i.toString());
var etiqueta_i:Label = new Label();
var inputField_i:TextInput = new TextInput();


etiqueta_i.text="Integrante "+String(Number(i+1));
etiqueta_i.x=10;
etiqueta_i.y=Y;
//Alert.show(etiqueta_i.y.toString());
etiqueta_i.id="Label"+String(Number(i+1));
//integrantes.addChild(etiqueta);
integrantes.addChild(etiqueta_i);
//trace(etiqueta.id);


inputField_i.id="InInte"+String(Number(i+1));
inputField_i.x=200;
inputField_i.y=Y;
integrantes.addChild(inputField_i);
// trace(inputField.id);
Y+=40;

}

}

Por jorhcl

28 de clabLevel



 

firefox

 

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