2012-07-24 5 views
2

나는 무대에 내 텍스트 필드를 업데이트하는 기능을 사용하고 있습니다 :루트 컨테이너를 통해 검색해도 모든 텍스트 필드를 찾지 못합니까?

private function updateFields(rootContainer:DisplayObjectContainer):void 
{ 
    for(var i=0; i < rootContainer.numChildren; i++) { 
     var item:* = rootContainer.getChildAt(i); 
     try { 
      updateFields(item); 
     } catch (e:Error) { 
      trace(e.toString()); 
     } 
     if (item.toString() == '[object TextField]') { 
      trace(item.name); 
     } 
    } 
} 

은 스테이지에 배치 텍스트 필드의 절반을 찾습니다. 왜 이런거야? 나를 미치게 해.

답변

1

나를 위해 작동합니다.

private function updateFields(rootContainer:DisplayObjectContainer):void 
{ 
    for (var i:uint = 0, n:uint = rootContainer.numChildren; i < n; ++i) { 
     var item:DisplayObject = rootContainer.getChildAt(i); 
     if (item is DisplayObjectContainer) { 
      updateFields(DisplayObjectContainer(item)); 
     } else if (item is TextField) { 
      trace(item.name); 
     } 
    } 
} 

편집 :DisplayObjectContainer를 고정

+0

내가 얻을 캐스팅 "1118 : 관련되지 않은 유형 flash.display의에의 DisplayObject : 정적 타입 flash.display의와 값의 암시 적 강제를. DisplayObjectContainer와를" 기본 구현이 다른가요? – saxly

+0

'DisplayObjectContainer' 캐스팅이 수정되었습니다. – Florent

+0

추가 질문은, 당신은 지금까지 나의 인생을 해결했습니다. 항목에 대한 참조는 정적이므로 item.text = "text"일 때 텍스트 필드의 값을 변경할 수 없습니다. 개체에 대한 참조를 어떻게 찾을 수 있습니까? – saxly

관련 문제