Flex:绑定到UITextField的高度

时间:2010-10-04 20:13:20

标签: flex binding height uitextfield

我遇到了将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

1 个答案:

答案 0 :(得分:1)

如果我不得不猜测,Binding是一个Flex构造,而不是“ActionScript”构造。高度是UIComponent中的Bindable,但是UITextField不扩展UIComponent。而是扩展了FlexTextField,扩展了TextField(A Closed source) Flash类)。

您可以扩展UITextField并覆盖height以使其成为Bindable,或者只使用Flex TextInput类,它会扩展UIComponent。