2010-10-22 143 views
0

我有一個Adobe Flex項目,其中存在以下佈局標記。adobe flex得到孩子的孩子

<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> 

我希望能夠得到s:Label元素中每個文本(如int)屬性的值。我試過這個:

var count:int = 0; 

for each (var b:BorderContainer in grid) 
{ 
    count += parseInt((b.getElementAt(0) as Label).text); 
} 

但這並不奏效。事實上,即使「grid.getElementAt(0)」返回一個BorderContainer,調試「b」時也始終爲空。

我希望任何人都可以幫助我解決我的問題。

謝謝,

卡邁勒。

回答

1

您需要遍歷組的元素那樣:

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); 
} 

的情況下有不僅使用BorderContainer的和標籤的,你需要做一個小的類型檢查(與鑄造「爲」和檢查空)...

+0

謝謝你Gertshi!這個伎倆。 – Kamal 2010-10-22 21:39:36