flex4中的getChildren()

时间:2013-01-03 15:51:45

标签: flex flex4 flash-builder

我的项目中有这个功能

public function changeFormItemsLabelWidth(form:Form, width:int):void
{
    var formItemsArray:Array = form.getChildren();
    for( var i:int = 0; i < formItemsArray.length; i++){
        if(formItemsArray[i].className == "FormItem"){
            var formItem:FormItem = formItemsArray[i] as FormItem;
            formItem.setStyle("labelWidth", width);
        }
    }

我收到了这个错误:

1061:通过带有静态类型spark.components:Form的引用调用可能未定义的方法getChildren。

有人能告诉我如何更换getchildren方法?因为我正在迁移到flex 4,这种方法不再存在。

修改

坦克的帮助我做了这样的事情并且有效

public function changeFormItemsLabelWidth(form:Form, width:int):void
{

    var it:int = 0;
    var n:int = form.numElements;
    for (it; it < n; it++)
    {
        var formItemsArray:Array = form.getElementAt(it) as Array;
    }

    for( var i:int = 0; i < formItemsArray.length; i++){
        if(formItemsArray[i].className == "FormItem"){
            var formItem:FormItem = formItemsArray[i] as FormItem;
            formItem.setStyle("labelWidth", width);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您需要使用form.numElements并进行迭代。每个元素都可以通过form.getElementAt( iterator )访问。

答案 1 :(得分:0)

我知道你没有问这个问题,而且我不确定你要解决的问题,但你操作FormItems大小超出标准生命周期功能的代码有点闻起来很有趣。只是一个建议。