动态加载Adobe Flex中的文本输入控件?

时间:2011-05-24 09:38:39

标签: flex adobe

<fx:Script>
        <![CDATA[
            import mx.controls.*;
            import mx.controls.TextInput;
            import mx.events.ListEvent;

            public function init():void
            {
                for(var i:int=0;i<5;i++)
                {       
                    var txtbox:TextInput = new TextInput();     
                    txtbox.id   = "text"+i;

                    myHBox.addChild(txtbox);
                }
            }

            public function getVal():void
            {

            }
        ]]>
    </fx:Script>

    <mx:HBox id="myHBox" width="100%" height="100%">
        <mx:Button label="Get Value" click="getVal()"/>
    </mx:HBox>

我实施了这个。我得到5个空值的文本框,如果我在每个文本框中输入一些值,那么,我想获得特定的第三个文本框值,某些事件触发器。所以我怎么做。因为我刚接触flex。请给我解决方案。提前谢谢。

2 个答案:

答案 0 :(得分:1)

为什么不直接将值存储在自己的数据结构中?

<fx:Script>
        <![CDATA[
            import mx.controls.*;
            import mx.controls.TextInput;
            import mx.events.ListEvent;

            private var inputs:Vector.<TextInput> = new Vector.<TextInput>();

            public function init():void
            {
                for(var i:uint = 0; i<5; i++)
                {       
                    var txtbox:TextInput = new TextInput();  
                    inputs.push(txtbox);  
                    myHBox.addChild(txtbox);
                }
            }

            public function getVal():void
            {
                var value:String;
                for(var i:uint = 0, len:uint = inputs.length; i<len; i++)
                {       
                    value += inputs[i].text + ' ';
                }
                trace(value);
            }
        ]]>
    </fx:Script>

    <mx:HBox id="myHBox" width="100%" height="100%">
        <mx:Button label="Get Value" click="getVal()"/>
    </mx:HBox>

另外,如果这是一个新项目,为什么要使用Flex 3?

答案 1 :(得分:0)

你的问题不是很清楚,但如果我理解正确的话,

试试这个:

        public function init():void
        {
            for(var i:int=0;i<5;i++)
            {       
                var txtbox:TextInput = new TextInput();
                //txtbox.id   = "text"+i;
                txtbox.name   = "text"+i;
                txtbox.addEventListener(Event.CHANGE,onChange);

                myHBox.addChild(txtbox);
            }
        }

        private function onChange(event:Event):void{
                Alert.show(TextInput(event.target).text,TextInput(event.target).name + " Changed");
        }

        public function getVal():void
        {
            Alert.show(TextInput(myHBox.getChildByName("text3")).text,"Value");
        }

欢呼声