загружать контроль ввода текста в Adobe Flex динамически? - PullRequest
1 голос
/ 24 мая 2011
<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 текстовых полей с пустым значением, если я ввел какое-то значение в каждое текстовое поле, то я хочу получить конкретное 3-е значение текстового поля после некоторого триггера события.так как я могу сделать.так как я новичок в изгибе.Пожалуйста, дайте мне решения.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Почему бы вам просто не сохранить значения в собственной структуре данных?

<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?

0 голосов
/ 24 мая 2011

Ваш вопрос не слишком ясен, но если я правильно понимаю,

Попробуйте:

        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");
        }

ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...