2

as3でradioButtonのラベルの高さを取得したいです。

radioButton グループに 5 つのラジオ ボタンがあります。これらの radioButtons の 1 つには 3 行のラベルがあり、別のラジオボタンには 1 行など...

にアクセスしようとすると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);
4

2 に答える 2

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;

今、あなたのシナリオでは、代わりにラジオボタンの境界を使用する方が良いかもしれません。それはオブジェクトの実際の高さになるからです。

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

ラベルが 1 行で、アイコンがラベルよりも高かった場合、ラジオ ボタンの実際の高さよりも小さい値を rb.textField.height から取得している可能性があります。

于 2012-09-14T17:03:33.810 に答える
-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 
    }
}
于 2012-09-14T10:49:19.140 に答える