2012-07-24 66 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