2010-10-13 68 views
0

我正在使用Flex 3 SDK 3.2。Flex 3 UITextField布局问题

我在确定UITextField的高度时遇到了问题。 (不幸的是,我必须使用UITextField,因为我使用FlashEff 2.0,否则我会使用不同的组件)。

我有一个UITextfield是多行,并有wordWrap。文本从数据库中提取,因此长度会有所不同。我在UITextField下有一个radioButtonGroup。

我的目标是:

  1. 从 保持的UITextField撞毁的RadioButtonGroup的 垂直框。

  2. 要改变基于所述 的UITextField的高度的RadioButtonGroup 的y 位置。

  3. 使TitleWindow的高度变量为 。 UITextField和radioButtonGroup 位于TitleWindow中。我想 根据里面的内容改变TitleWindow 的高度。

此刻,我给自己定了的RadioButtonGroup的是开的TitleWindow中一路下跌,使的UITextField的内容不重叠。但是,当UITextField中没有太多文本时,我会在radioButtonGroup的VBox和它之间产生巨大的差距。

如果我不给TitleWindow一个高度,那么UITextField会自己伸展到2000像素。

我已经谷歌搜索,从我可以告诉,UITextField的高度行为怪异。

有谁知道如何解决这个问题?

我创造的UITextField像这样:

公共变种TF:=的UITextField新的UITextField;

tf.autoSize = TextFieldAutoSize.LEFT;

tf.embedFonts = true;

tf.multiline = true;

tf.text = myText;

tf.width = 440;

tf.wordWrap = true;

var myFormat:TextFormat = new TextFormat;

myFormat.size = 25;

myFormat。blockIndent = 53;

this.addChild(tf);

tf.validateNow();

tf.setTextFormat(myFormat);

我的垂直框看起来是这样的:

<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" /> 

而这一切都包裹在一个TitleWindow中,看起来像这样:

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

     layout="absolute" 

     width="520"  

     height="450" 

     verticalScrollPolicy="off" 

     horizontalScrollPolicy="off" 
    > 

有什么建议?

谢谢。

-Laxmidi

回答

0

rtalton帮了我。

我发现radioVBox正在向上移动并重叠MainBox,因为UITextField是动态的,并且对它有FlashEff2效果。基本上,当计算radioVBox的布局时,MainBox的高度为0。

因此,我将UITextField添加到一个VBox。在那之下我有了radioVBox。我将radioVBox的可见性设置为false。然后,我为FlashEff2效果结束时添加了一个eventListener,它调用了打开radioVBox可见性的函数。另外,在我设置的函数中:radioVBox.y =(tf.y + tf.height + 40);.最后,我将TitleWindow的高度设置如下:height =“{radioVBox.y + 270}”

谢谢。

-Laxmidi