2010-10-27 77 views
0
var count:uint = 0; 
var textInputs:Array /* of TextInputs */ = []; 
for(var i:String in columnsData){ 
    textInputs[count] = new TextInput(); 

    addChild(textInputs[count]); 
    count++; 
} 

在這裏,我怎麼能訪問字符串或任何東西的形式textinputs的陣列的第一,第二,進一步進行如何訪問數組元素

+0

有什麼錯textInputs [0]的.text和textInputs [1] .tex值T' – PatrickS 2010-10-27 05:57:05

回答

0
(getChildAt(0) as TextInput).text //first 
(getChildAt(1) as TextInput).text //second 

如果你的精靈含有比其他東西TextInput在索引0 & 1你會得到空引用異常。

+0

這個getChildAt屬於..? – mani 2010-10-27 06:02:33

+0

公共職能ContinclickHandler():無效{ 如果(contin.label == 「繼續」){ Alert.show( 「內部」); //第一 Alert.show(fieldInputs [0] .text.toString()); }} 所以在這裏我訪問fieldInputs [0]在不同的功能,但我不能表現出來柔性腳本,但在警報內部消息來了,爲什麼不fieldinputs – mani 2010-10-27 08:37:11

1

我不知道如果我理解你的問題是什麼,但你不設置文本輸入的值:

我喜歡它的方式如下:

//make the array an instance variable instead of local var 
//so that it can be accessed from other functions if required. 
public var textInputs:Array = []; 

for(var str:String in columnsData) 
{ 
    var ti:TextInput = new TextInput(); 
    ti.text = str; 
    addChild(ti); 
    textInputs.push(ti); 
} 

您可以訪問使用textInputs[0].text

if(textInput != null){ 
    for(var i:Number = 0; i < textInputs.length; i++) 
    trace(textInputs[i].text); 
} 
0
<?xml version="1.0"?> 
<!-- dpcontrols\UseIList.mxml --> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    initialize="initData();"> 
    <s:layout> 
     <s:VerticalLayout/> 
    </s:layout> 

    <fx:Script> 
     <![CDATA[ 
      import mx.collections.*; 

      // The data provider is an Array of Strings 
      public var myArray:Array = ["AZ", "MA", "MZ", "MN", "MO", "MS"]; 
      // Declare an ArrayList that represents the Array. 
      [Bindable] 
      public var myAL:ArrayList; 

      //Initialize the ArrayList. 
      public function initData():void { 
       myAL = new ArrayList(myArray); 
      } 

      // The function to change the collection, and therefore 
      // the Array. 
      public function changeCollection():void { 
       // Get the original collection length. 
       var oldLength:int=myAL.length; 

       // Remove the invalid first item, AZ. 
       var removedItem:String=String(myAL.removeItemAt(0)); 
       // Add ME as the second item. (ILists used 0-based indexing.) 
       myAL.addItemAt("ME", 1); 
       // Add MT at the end of the Array and collection. 
       myAL.addItem("MT"); 
       // Change the third item from MZ to MI. 
       myAL.setItemAt("MI", 2); 
       // Get the updated collection length. 
       var newLength:int=myAL.length; 
       // Get the index of the item with the value ME. 
       var addedItemIndex:int=myAL.getItemIndex("ME"); 
       // Get the fifth item in the collection. 
       var index4Item:String=String(myAL.getItemAt(4)); 

       // Display the information in the TextArea control. 
       ta1.text="Start Length: " + oldLength + ". New Length: " + 
        newLength; 
       ta1.text+=".\nRemoved " + removedItem; 
       ta1.text+=".\nAdded ME at index " + addedItemIndex; 
       ta1.text+=".\nThe item at index 4 is " + index4Item + "."; 
       // Show that the base Array has been changed. 
       ta1.text+="\nThe base Array is: " + myArray.join(); 
      } 
     ]]> 
    </fx:Script> 

    <s:ComboBox id="myCB" dataProvider="{myAL}"/> 
    <s:TextArea id="ta1" height="75" width="300"/> 
    <s:Button label="rearrange list" click="changeCollection();"/> 
</s:Application>