2012-07-24 40 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 2012-07-24 16:31:25

+0

修復了'DisplayObjectContainer'轉換。 – Florent 2012-07-24 16:34:44

+0

還有一個問題,你到目前爲止已經解決了我的生活。項目的引用是靜態的,所以在執行操作時我似乎無法更改文本字段的值:item.text =「text」。 我如何找到對象的引用。 – saxly 2012-07-24 16:43:21