如何获得RadioButton的标签高度 - AS3

时间:2012-09-14 09:19:57

标签: actionscript-3 flash radio-button

我想在as3中获得radioButton的标签高度。

我的radioButton组中有5个单选按钮。其中一个radioButtons有一个三行标签,另一个有一行等......

当我尝试访问radioButton.height时,无论标签高度如何,我总是得到相同的值。

我需要知道标签的高度,所以我可以相应地设置radioButton y坐标。

我可以更改radioButton的标签高度吗?

spacing = 30;
rb.label = tempQQString   //from xml. long or short string anyone
rb.group = myGroup;
rb.value = i + 1;

rb.x = answerX;
rb.y = questionField.height + (questionY+20) + (i * spacing); // here use rb.height or rb.textField.height 

trace("rb height**" + rb.height) // always get velue 22;
addChild(rb);

2 个答案:

答案 0 :(得分:0)

RadioButton和任何扩展labelButton的fl控件(所有带有标签的控件)都会使用.textField属性公开实际的文本字段。

因此,对于您的示例,您可以使用rb.height来获取控件的标签部分的高度,而不是使用rb.textField.height

您也可以在textField上设置属性。

rb.textField.background = true;
rb.textField.backgroundColor = 0xDDDDDD;

rb.textField.multiline = true;
rb.textField.wordWrap = true;
rb.textField.autoSize = TextFieldAutoSize.LEFT;

现在,适用于您的场景,您可能最好只使用单选按钮的边界,因为它将是对象的 REAL 高度。

rb.getBounds(rb).height;  //this will be the true height of the component.

如果你的标签是一行并且你的图标高于你的标签,你可能会从rb.textField.height获得一个小于单选按钮实际高度的值。

答案 1 :(得分:-1)

试试这个。

for(var i=0;i<rb.numChildren;i++){
    if(rb.getChildAt(i) is TextField){
        var txt:TextField = rb.getChildAt(i) as TextField;
        trace(txt.height+":"+rb.height);//traces the height of text field and radio button 
    }
}