Apache flex AdobeFlex获取子对象的子对象

Apache flex AdobeFlex获取子对象的子对象,apache-flex,adobe,flash-builder,Apache Flex,Adobe,Flash Builder,我有一个AdobeFlex项目,其中包含以下布局标记 <s:TileGroup id="grid" width="467" height="467" requestedRowCount="15" requestedColumnCount="15" horizontalGap="0" verticalGap="0" verticalAlign="middle" name="tg"> <s:BorderContainer width="31" height="31" nam

我有一个AdobeFlex项目,其中包含以下布局标记

<s:TileGroup id="grid" width="467" height="467" requestedRowCount="15" requestedColumnCount="15" horizontalGap="0" verticalGap="0" verticalAlign="middle" name="tg">
    <s:BorderContainer width="31" height="31" name="container">
         <s:Label text="999" verticalAlign="middle" textAlign="center" paddingLeft="0" paddingRight="2" paddingBottom="0" paddingTop="0" width="29" height="29" click="Clicked(event)"/>
    </s:BorderContainer>
    <s:BorderContainer width="31" height="31" name="container">
         <s:Label text="999" verticalAlign="middle" textAlign="center" paddingLeft="0" paddingRight="2" paddingBottom="0" paddingTop="0" width="29" height="29" click="Clicked(event)"/>
    </s:BorderContainer>
...
...
</s:TileGroup>
但这是行不通的。事实上,调试时,即使“grid.getElementAt(0)”返回一个BorderContainer,但“b”始终为null

如果有人能帮我解决问题,我将不胜感激

谢谢


Kamal.

您需要像这样迭代组的元素:

var count:int = 0;

for (var i:int = 0; i < grid.numElements; i++)
{
    var b:BorderContainer = BorderContainer(grid.getElementAt(i));
    count += parseInt(Label(b.getElementAt(0)).text);
}
var计数:int=0;
对于(变量i:int=0;i
如果不仅仅有BorderContainer和Label,您需要做一些类型检查(使用'as'强制转换并检查null)

var count:int = 0;

for (var i:int = 0; i < grid.numElements; i++)
{
    var b:BorderContainer = BorderContainer(grid.getElementAt(i));
    count += parseInt(Label(b.getElementAt(0)).text);
}