Comunidad de diseño web y desarrollo en internet online

Posición Dinámica

Citar            
MensajeEscrito el 28 Feb 2006 05:45 pm
Ok, tengo par de funcioncillas: la primera se encarga de crear RadioButtons y la segunda de crear un conjunto de RadioButtons. El problema es que cuando el texto de un Radiobutton tiene más de una línea, no sé qué propiedad me da la verdadera altura del Radiobutton para que al posicionarlo no se solapen (montarse uno arriba de otro), he intentado varias cosas sin resultados positivos....Si pongo el texto sin salto de línea, pincha OK.....
Prueben Copy & Paste...( arrastren el Radiobutton a la Biblioteca, jejejeje :lol: )

Código :

import mx.controls.RadioButton;

function newRadioButton(path:MovieClip, name:String, initObj:Object):RadioButton {
   path.createObject("RadioButton", name, initObj._depth, initObj);
   path[name].labelPath.autoSize = true;
   return path[name];
}
//******************************************************************************************************************************
function newQuestionGroup(path:MovieClip, name:String, initObj:Object, questions:Array):Void {
   var mc:MovieClip = path.createEmptyMovieClip(name, path.getNextHighestDepth());
   mc._x = initObj._x;
   mc._y = initObj._y;
   var max:Number = questions.length;
   newRadioButton(mc, "option0", {_depth:0, _x:0, _y:0, label:questions[0], groupName:"answer"});
   for (var i = 1; i<max; i++) {         
      newRadioButton(mc, "option"+i, {_depth:i, _x:0, _y:mc["option"+(i-1)]._y+mc["option"+(i-1)].height, label:questions[i], groupName:"answer"});
   }
}
newQuestionGroup(this, "questions_mc", {_x:50, _y:100}, new Array("Alexander MG", "Alejandro JL", "http://www.cristalab.com/foros/\nviewtopic.php?t=2905&highlight=fecha", "Alejandro JL"));

La cosa está en esta línea y específicamente en la asignación a la _y:

Código :

newRadioButton(mc, "option"+i, {_depth:i, _x:0, _y:mc["option"+(i-1)]._y+mc["option"+(i-1)].height, label:questions[i], groupName:"answer"});

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 28 Feb 2006 09:01 pm
Que onda!
Si tu cambio de linea solo es con '\n', puedes probar esto:

Código :

function newQuestionGroup(path:MovieClip, name:String, initObj:Object, questions:Array):Void {
   var mc:MovieClip = path.createEmptyMovieClip(name, path.getNextHighestDepth());
   var alto:Number = new Number(22);
   mc._x = initObj._x;
   mc._y = initObj._y;
   var max:Number = questions.length;
   newRadioButton(mc, "option0", {_depth:0, _x:0, _y:0, label:questions[0], groupName:"answer"});
   for (var i = 1; i<max; i++) {
      alto = 22;
      if (questions[i-1].indexOf("\n") != -1) {
         alto = 32;
      }
      newRadioButton(mc, "option"+i, {_depth:i, _x:0, _y:mc["option"+(i-1)]._y+alto, label:questions[i], groupName:"answer"});
   }
}


En tu función para crear radiogroups, puse una variable 'alto', si 'questions' trae un salto de linea con '\n', la altura la pone con valor de 32 y a tu _y del radio button, no le agrega la altura, si no la variable 'alto'
Fue lo unico que por ahora se me ocurrió, espero te sirva! :wink:

P.D.: Ahora que estoy escribiendo esto, me doy cuenta de que solo sirve para un salto de línea, creo que si quisieras para más, tendrías que meter una función que cheque cuantos hay y a partir de ahí determinar cuanto valor a _y se va a agregar. ^^

Service Pack 1 a mi respuesta anterior: ^^
Puedes editar estas lineas:

Código :

alto = 22;
if (questions[i-1].indexOf("\n") != -1) {
   alto = 32;
}

por esta:

Código :

alto = (questions[i-1].indexOf("\n") != -1) ? 32 : 22;

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 01 Mar 2006 01:52 pm
Man, muchas gracias, xq ayer ya no generaba más nada, pues lo que voy a hacer es lo que recomiendas. Hacer la función que cuente los saltos de línea y te dé la altura.
Pero en realidad debería devolver la "altura real" del componente, ya que el texto se extiende y queda visible....Cosas que pasan!!!!

Nada, Thanks Again For Your Help.....:wink:

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox

 

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