我遇到了将UITextField的高度绑定到VBox的y和TitleWindow的高度的问题。我正在尝试调整TitleWindow的高度和VBox的高度,以便UITextField不与其他内容重叠。
或者,我已经尝试将UITextField的高度设置为显式高度,但我无法使其工作。
我必须使用UITextField而不是Text,因为我使用的是Flash Eff2。
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="520"
height="{tf.height + 380}">
<mx:Script>
<![CDATA[
import mx.core.UITextFormat;
import mx.events.ItemClickEvent;
import mx.controls.RadioButton;
import mx.controls.RadioButtonGroup;
import mx.core.UITextField;
import mx.managers.PopUpManager;
[Bindable]
public var tf:UITextField = new UITextField;
[Bindable]
public var myText:String;
[Embed(source="../libs/arial.ttf", fontFamily="ArialEmbedded")]
public const ArialEmbedded:Class;
public function createEffect2():void{
tf.autoSize = TextFieldAutoSize.LEFT;
//tf.height=150;
tf.embedFonts = true;
tf.multiline = true;
tf.text = myText;
tf.width = 400;
tf.wordWrap = true;
var myFormat:TextFormat = new TextFormat;
myFormat.size = 25;
myFormat.blockIndent=50;
this.addChild(tf);
tf.validateNow();
tf.setTextFormat(myFormat);
}
]]>
</mx:Script>
<mx:VBox x="180" y="{tf.height + 140}" width="480" >
<mx:RadioButtonGroup id="choicesRadioButtonGroup" />
<mx:RadioButton groupName="choicesRadioButtonGroup" label="A" horizontalCenter="150"/>
<mx:RadioButton groupName="choicesRadioButtonGroup" label="B" horizontalCenter="150"/>
<mx:RadioButton groupName="choicesRadioButtonGroup" label="C" horizontalCenter="150"/>
</mx:VBox>
</mx:TitleWindow>
我收到:数据绑定将无法检测到“高度”的分配。
有什么建议吗?
谢谢。
-Laxmidi
答案 0 :(得分:1)
如果我不得不猜测,Binding是一个Flex构造,而不是“ActionScript”构造。高度是UIComponent中的Bindable,但是UITextField不扩展UIComponent。而是扩展了FlexTextField,扩展了TextField(A Closed source) Flash类)。
您可以扩展UITextField并覆盖height以使其成为Bindable,或者只使用Flex TextInput类,它会扩展UIComponent。