سؤال

لدي مشروع 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>

أود أن أكون قادرًا على الحصول على قيمة كل من السمة من النص (كـ int) في عنصر التسمية S:. حاولت هذا:

var count:int = 0;

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

لكن ذلك لا يفيد. في الواقع ، عندما يكون تصحيح الأخطاء "B" خالية دائمًا على الرغم من أن "Grid.GetElementat (0)" يعيد حدود الحدود.

سأقدر أي مساعدة يمكن لأي شخص أن يقدمها لي في حل مشكلتي.

شكرًا،

كمال.

هل كانت مفيدة؟

المحلول

تحتاج إلى التكرار حول عناصر المجموعة من هذا القبيل:

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 و Label's فقط ، ستحتاج إلى القيام بفحص نوع صغير (يلقي بـ "AS" والتحقق من NULL) ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top