2012-07-24 54 views
0

我在尋找通過我的DisplayContainer文本字段來改變他們,但我有改變基準的一個問題:通過靜態文本引用更改文本值?

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) { 
      item.text = "hej"; 
     } 
    } 

的item.text拋出:

1119: Access of possibly undefined property text through a reference with static type flash.display:DisplayObject. 

如何轉換它,我可以使用它?

回答

1

你需要將其類型作爲TextField後,才能調用就可以了TextField方法:

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) { 
     var textField:TextField = item as TextField; 
     textField.text = "hej"; 
    } 
} 
+0

這定了!謝謝!總是想到你如何使用靜態引用,這解釋了我。我正在考慮這樣做: \t var objecto:* = rootContainer.getChildAt(i); \t objecto.text =「hej」; 但是這解決了它!謝謝! – saxly 2012-07-24 17:30:46

+0

沒問題,很高興幫助!確保將問題標記爲已回答,以便將來人們可以看到標記的解決方案,如果他們有相同的問題。 – redhotvengeance 2012-07-24 17:37:22

+0

是的,我標記了你!在第一個15分鐘內不能標記你所以等待它。還沒有忘記你。再次感謝! – saxly 2012-07-24 17:53:12