Comunidad de diseño web y desarrollo en internet online

Crear radiobutton dinamicamente dentro de un MC

Citar            
MensajeEscrito el 19 May 2010 09:48 am
Hola, estoy desperada ya no se que mas probar. A ver si podeis echarme una mano.
Mi problema es el siquiente:

Tengo un MC llamda "publichannel" y dentro de éste otro llamado "contenido", es decir, que para acceder a algun objeto que esté dentro de "contenido" tendria que poner: _root.publichannel.contenido.Objeto

Lo que quiero hacer es crear un radio button (el componente correspondiente ya lo tengo en la biblioteca) dentro del MC "contenido" y un campo de texto (ambos de forma dinamica). El codigo (que no me funciona) es el siguiente:

Código ActionScript :

nr=1;
totalrespuestas=vectorrespuestas.length;
y=0;
for (k=0; k<totalrespuestas; k++)
{
  textorespuesta = vectorrespuesta[k];
         
  var respuestamc:MovieClip = _root.publichannel.cuerpo.createEmptyMovieClip("respuesta"+nr,  _root.publichannel.cuerpo.getNextHighestDepth());

 //creo los radiobutton
 respuestamc.attachMovie("RadioButton", "rb"+nr,respuestamc.getNextHighestDepth());
 respuestamc ["rb"+nr].groupName= "grupopreg-"+idpregunta;
 respuestamc ["rb"+nr]["rb"+nr].label = textorespuesta;
 respuestamc ["rb"+nr]["rb"+nr].data = nr;
 respuestamc["rb"+nr]._x = 0;
 respuestamc["rb"+nr]._y = yopcion;

 //creo el campo de texto
 respuestamc.createTextField("respuestatxt"+nr, respuestamc.getNextHighestDepth(), xr, yr, 300, 100);
 respuestamc["respuestaatxt"+nr].multiline = true;
 respuestamc["respuestatxt"+nr].wordWrap = true;
 respuestamc["respuestatxt"+nr].autoSize = "left";
 respuestamc["respuestatxt"+nr].text = textorespuesta;
                           
 var formatorespuesta:TextFormat = new TextFormat();
 formatorespuesta.color = 0xFFFFFF;
 formatorespuesta.size = 12;
 formatorespuesta.font = "Arial";
 respuestamc["respuestatxt"+nr].setTextFormat(formatorespuesta);
 respuestamc["respuestatxt"+nr]._y = yopcion;
 respuestamc["respuestatxt"+nr]._x = 30;

 yopcion= yopcion + respuestamc._height;
 nr ++;
}


Este codigo me creo perfectamente los campos de texto y los posiciona bien, sin embargo no me crea ningun radiobutton.
Alguna de idea del fallo??

Gracias de antemano.
Saludos.

Por liru28

53 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 May 2010 02:21 pm
mmm no le veo el problema e igual checa el tutorial de esta liga donde creas dinamicamente los radiobuttons

http://www.cristalab.com/tutoriales/tutorial-del-componente-radiobutton-de-flash-c40l/ escribió:



saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 11 Jun 2010 12:21 pm
Hola, ya lo he solucionado. Pongo aqui cómo lo hecho por si hay mas usuarios con este problema:

Lo unico que he cambiado ha sido que en vez de crear los radiobutton desntro de tantos movieclips, los he creado dentro de publichannel, en un mc llamado "cuerpores" y dentro de este he ido creando solo los radiobutton y ya esta (sin campos de texto).

Los campos de texto los creo todos en un MC independiente.

Código ActionScript :

publichannel.createEmptyMovieClip("cuerpores"+n, publichannel.getNextHighestDepth());
for (k=0; k<totalrespuestas; k++)
{
var radiobutton:MovieClip = publichannel["cuerpores"+n];            
radiobutton.attachMovie("RadioButton", "opcion"+nr, radiobutton.getNextHighestDepth());
radiobutton["opcion"+nr].groupName= "Preg"+idpregunta;
radiobutton["opcion"+nr].label = "";
radiobutton["opcion"+nr].data = idencuesta + "-" + idpregunta + "-" + idrespuesta;
radiobutton["opcion"+nr]._x = xr - 15;
radiobutton["opcion"+nr]._y =yr;
}

Por liru28

53 de clabLevel



 

msie8
Citar            
MensajeEscrito el 11 Jun 2010 12:35 pm
Ahora me surge otra duda con respecto al codigo que he posteado en mi anterior respuesta:
Necesito saber que opcion (radiobutton) es la que el usuario ha seleccionado pero con el codigo que he usado no me funciona, creo que es por el nombre del grupo pero no se como ponerlo:

Código ActionScript :

publichannel.createEmptyMovieClip("cuerpores"+n, publichannel.getNextHighestDepth()); 
for (k=0; k<totalrespuestas; k++) 
{ 
var radiobutton:MovieClip = publichannel["cuerpores"+n];             
radiobutton.attachMovie("RadioButton", "opcion"+nr, radiobutton.getNextHighestDepth()); 
radiobutton["opcion"+nr].groupName= "Preg"+idpregunta; radiobutton["opcion"+nr].label = ""; 
radiobutton["opcion"+nr].data = idencuesta + "-" + idpregunta + "-" + idrespuesta; 
radiobutton["opcion"+nr]._x = xr - 15; 
radiobutton["opcion"+nr]._y =yr; 

alClicar = new Object(evento);
alClicar.click = function() 
{
trace(evento.target.selection.data);
};

radiobutton["opcion"+nr]["Preg"+idpregunta].addEventListener("click", alClicar);
//Tambien he probado con
//nombregrupo=radiobutton["opcion"+nr].groupName;
//nombregrupo.addEventListener("click", alClicar);
//Pero tampoco me funciona
} 


Por favor, alguna idea de como ponerlo??

Un saludo a todos. Y gracias.

Por liru28

53 de clabLevel



 

msie8

 

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