2011-05-24 40 views
1
<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的新手。請給我解決方案。提前致謝。在Adobe Flex中動態加載文本輸入控件?

回答

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

歡呼

+1

我不打算-1這個,但這不是一個合適的解決方案,因爲'getChildByName'效率低下。 – 2011-05-24 11:55:40

+0

調用它-1看起來太過牽強了,因爲它對這個相當模糊的問題仍然有幫助 – 2011-05-24 12:06:12

+1

是的,但有用的錯誤種類。如果問題不明確,只需在評論中提問即可,而不是僅僅爲了發佈內容。 – 2011-05-24 12:12:32

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?