首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历Flex 4中的Form子级

遍历Flex 4中的Form子级
EN

Stack Overflow用户
提问于 2013-02-06 21:36:25
回答 1查看 587关注 0票数 3

我有一个spark表单,看起来像这样。我尝试遍历表单并将每个DropDownList的id推入一个数组中。

我能够成功地找到表单项的I。但是我不能使用任何我用来访问孩子的方法来获取DropDownList的id,我使用的是Flex3。我是新的Flex4,经过一些阅读,我理解它是由于一些与spark架构相关的东西。

这是一种形式。

代码语言:javascript
复制
<s:Form id="facilities" x="51" y="32" width="595" height="402">

        <s:FormHeading label="SWOT ANALYSIS FORMAT FOR PLOT PURCHASE" fontSize="15">

        </s:FormHeading>

        <s:FormItem id = "petrolPumpsFormItem" required="true" width="464" label="Petrol Pumps:">
            <s:DropDownList id = "petrolPumps" width="220"  prompt="Select distance from the plot" labelField="distance" >
                <s:dataProvider>
                    <s:ArrayCollection>

                        <fx:Object distance="1-3 km"   mark="100"/>
                        <fx:Object distance="3-6 km"   mark="90"/>
                        <fx:Object distance="6-9 km"   mark="80"/>
                        <fx:Object distance="9-12 km"  mark="70"/>
                        <fx:Object distance="12-15 km" mark="60"/>
                        <fx:Object distance="15-18 km" mark="50"/>

                    </s:ArrayCollection>
                </s:dataProvider>
            </s:DropDownList>
        </s:FormItem>

        <s:FormItem id="filmTheatreFormItem" required="true" width="464" label="Film Theatre:">
            <s:DropDownList id="filmTheatre" width="220"  prompt="Select distance from the plot" labelField="distance" >
                <s:dataProvider>
                    <s:ArrayCollection>

                        <fx:Object distance="1-3 km"   mark="100"/>
                        <fx:Object distance="3-6 km"   mark="90"/>
                        <fx:Object distance="6-9 km"   mark="80"/>
                        <fx:Object distance="9-12 km"  mark="70"/>
                        <fx:Object distance="12-15 km" mark="60"/>
                        <fx:Object distance="15-18 km" mark="50"/>

                    </s:ArrayCollection>
                </s:dataProvider>
            </s:DropDownList>
        </s:FormItem>

        <s:FormItem id= "atmFormItem" required="true" width="464" label="ATM:">
            <s:DropDownList id= "atm" width="220"  prompt="Select distance from the plot" labelField="distance" >
                <s:dataProvider>
                    <s:ArrayCollection>

                        <fx:Object distance="1-3 km"   mark="100"/>
                        <fx:Object distance="3-6 km"   mark="90"/>
                        <fx:Object distance="6-9 km"   mark="80"/>
                        <fx:Object distance="9-12 km"  mark="70"/>
                        <fx:Object distance="12-15 km" mark="60"/>
                        <fx:Object distance="15-18 km" mark="50"/>

                    </s:ArrayCollection>
                </s:dataProvider>
            </s:DropDownList>
        </s:FormItem>

    </s:Form>

我可以像这样访问表单项。“‘facilities”是表单的名称。

代码语言:javascript
复制
for (var i:int = 0 ;i <= facilities.numElements-1;i++)
    {
    var item:IVisualElementContainer = facilities.getElementAt(i) as IVisualElementContainer;
    trace(item);
    }

我尝试了这个链接http://www.igorcosta.org/?p=366,并尝试使用那里给出的类。

问题是抛出了一个错误。Flash builder将我带到代码中第二个函数中的第二个for循环,并显示在那里使用的item.numElements正在产生问题。我试图在我的代码中使用item.numElements (上面显示的那个,我用它来跟踪FormItem ids),但它也不起作用。有没有人有线索?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 05:34:17

在for循环中,facilities.getElementAt(i)将返回一个IVisualElement,而不一定是IVisualElementContainer。

试着这样做:

代码语言:javascript
复制
var item:IVisualElement = facilities.getElementAt(i);
trace(item);
var itemContainer:IVisualElementContainer = item as as IVisualElementContainer;

if (itemContainer) {
    trace(itemContainer.numElements);
}

这应该会给你想要的结果!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14730433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档