2009-03-24 8 views
0

私は、TextInputsとテキストフィールドのリストを含むタイルレイアウトを持っています。これらのフィールドは、次のコードを使用してカスタムコンポーネントに作成しました。ActionScript 3 - コンポーネントで作成されたTexInputからテキスト値を取得する

var newTextInputs:Array = []; 
     var newTextLabels = []; 
     var space:Number = 30; 
     var count:Number = 0; 
     for (var i:String in columnsData) 
     { 
      //create text labels 
      var label:Text = new Text(); 
      label.name = "label" + count; 
      label.text = i; 
      newTextLabels[count] = label; 
      addChild(newTextLabels[count]); 

      // create text fields 
      var field:TextInput = new TextInput(); 
      field.name = "field" + count; 
      field.width = 100; 
      field.height = 25; 
      field.text = columnsData[i]; 
      newTextInputs[count] = field; 
      addChild(newTextInputs[count]); 
      count++;  
     } 

ユーザーがそれぞれのTextInputフィールドに編集した値が許可されている、今私は、しかし、私は、これらのフィールドにアクセスする方法を新たにudpated値を取得する必要がありますか?識別子は動的に作成されるので、私は単にcomponentName.InputFieldName、任意のアイデアに行くことはできませんか?

答えて

2

私は何を探していることはgetChildByName

後で編集だと思う:には、FlashとTextFieldでテストし、それが動作します:

trace(TextField(getChildByName('textfield')).text); 
+0

ので、私は(にtextInputの名前を指定する必要がありますたとえば、field1)をパラメータとして使用してDisplayObjectを返すと、表示オブジェクトを使用してテキスト値を取得するにはどうすればいいですか?歓声 – cduggan

+0

TextInput(getChildByName( 'field' + i)) – evilpenguin

+0

はFlashとTextFieldでテストされ、作品:トレース(TextField(getChildByName( 'textfield'))。テキスト); – evilpenguin

1

TileList CHANGEイベントにイベントハンドラを追加できます。発生すると、event.targetプロパティに特定のTextInputフィールドがあると思います。また、TileList.SelectedItemプロパティを参照することもできます。

また、DataProviderをコードの代わりにTileListにバインドして、自動的にこれを処理することもできます。 NewTextLabels配列をdataProviderとして割り当ててみてください。

関連する問題