2010-10-13 8 views
0

J'utilise Flex 3, SDK 3.2.Flex 3 UITextField Mise en page problème

Je rencontre des problèmes pour déterminer la hauteur d'un objet UITextField. (Malheureusement, je dois utiliser UITextField car j'utilise FlashEff 2.0, sinon j'utiliserais un composant différent).

J'ai un UITextfield qui est multiligne et a wordWrap. Le texte est extrait d'une base de données, donc la longueur varie. J'ai un radioButtonGroup sous le UITextField.

Mes objectifs sont les suivants:

  1. Pour garder la UITextField de s'écraser dans VBox du RadioButtonGroup.

  2. Pour modifier la y position du RadioButtonGroup en fonction de la hauteur du UITextField. Pour créer la variable de hauteur TitleWindow. Le UITextField et le radioButtonGroup sont dans une TitleWindow. Je voudrais modifier la hauteur de la TitleWindow en fonction du contenu à l'intérieur.

En ce moment, je me suis fixé y du RadioButtonGroup chemin vers le bas sur la TitleWindow, de sorte que le contenu du UITextField ne se chevauchent pas. Mais, quand il n'y a pas trop de texte dans le UITextField, j'obtiens un énorme écart entre la VBox de radioButtonGroup et celle-ci.

Si je ne donne pas une hauteur à la TitleWindow, le champ UITextField s'étendra sur quelque chose comme 2000 px.

J'ai googlé et de ce que je peux dire, la taille de UITextField se comporte bizarrement.

Est-ce que quelqu'un sait comment résoudre ce problème?

je crée le UITextField comme ceci:

tf public var: UITextField = new UITextField;

tf.autoSize = TextFieldAutoSize.LEFT;

tf.embedFonts = true;

tf.multiline = true;

tf.text = myText;

tf.largeur = 440;

tf.wordWrap = true;

var myFormat: TextFormat = nouveau TextFormat;

myFormat.size = 25;

myFormat.blockIndent = 53;

this.addChild (tf);

tf.validateNow();

tf.setTextFormat (myFormat);

Mon VBox ressemble à ceci:

<mx:VBox  id="radioVBox" x="180" y="220"> 

     <mx:RadioButtonGroup id="myRadioButtonGroup" itemClick="goClickHandler(event);"/> 

     <mx:RadioButton  groupName="myRadioButtonGroup" label="A"  fontSize="17" /> 

     <mx:RadioButton  groupName="myRadioButtonGroup" label="B"  fontSize="17" /> 

     <mx:RadioButton  groupName="myRadioButtonGroup" label="C"  fontSize="17" /> 

     <mx:RadioButton  groupName="myRadioButtonGroup" label="D"  fontSize="17" /> 

     <mx:RadioButton  groupName="myRadioButtonGroup" label="E"  fontSize="17" /> 

Et il est empaqueté dans un TitleWindow qui ressemble à ceci:

<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 

     layout="absolute" 

     width="520"  

     height="450" 

     verticalScrollPolicy="off" 

     horizontalScrollPolicy="off" 
    > 

Toutes les suggestions?

Merci.

-Laxmidi

Répondre

0

rtalton m'a aidé.

Je me suis rendu compte que le radioVBox déplaçait et chevauchait la MainBox, parce que le UITextField est dynamique et a un effet de FlashEff2 dessus. Fondamentalement, la hauteur de la MainBox est 0 lorsque la disposition de radioVBox est calculée. Donc, j'ajoute UITextField à une VBox. En dessous, j'ai le radioVBox. J'ai mis la visibilité de radioVBox à faux. Puis j'ai ajouté un eventListener lorsque l'effet FlashEff2 s'est terminé, ce qui a appelé une fonction qui a activé la visibilité de radioVBox. Aussi, dans la fonction que j'ai définie: radioVBox.y = (tf.y + tf.height + 40) ;. Enfin, j'ai défini la hauteur de TitleWindow comme suit: height = "{radioVBox.y + 270}"

Merci.

-Laxmidi