2009-03-24 5 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 필드에서 편집 값을 사용할 수 있습니다, 지금은 그러나 나는 이러한 필드에 액세스 할 수있는 방법을 새로 업데이트되면서 값을 검색해야합니까? 식별자는 동적으로 생성되기 때문에 단순히 componentName.InputFieldName으로 이동하십시오. 어떤 아이디어입니까?

답변

2

난 당신이 getChildByName

나중에 편집되어 찾고있는 생각 : 플래시와 텍스트 필드에을 시험하고 그것을 작동 :

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

그래서 내가 따라 TextInput의 이름을 (지정해야 할 예를 들어 field1)을 매개 변수로 사용하여 DisplayObject를 반환하면 표시 객체를 사용하여 텍스트 값을 얻는 방법 건배 – cduggan

+0

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

+0

플래시 및 TextField로 테스트 한 후 작품 : 추적 (TextField (getChildByName ('textfield')). 텍스트); – evilpenguin

1

TileList CHANGE 이벤트에 대한 이벤트 처리기를 추가 할 수 있습니다. 발생하면 event.target 속성에 특정 TextInput 필드가 있다고 생각합니다. 또는 TileList.SelectedItem 속성을 살펴볼 수도 있습니다.

표시된대로 DataProvider를 코드 대신 TileList에 바인딩 할 수도 있습니다. 자동으로 처리됩니다. NewTextLabels 배열을 dataProvider로 할당 해보십시오.

관련 문제