0

我的项目中有这个功能

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

2 回答 2

1

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

于 2013-01-03T16:00:25.550 回答
0

我知道您没有问这个问题,而且我不确定您要解决的问题,但是您在标准生命周期函数之外操纵 FormItems 大小的代码有点奇怪。只是一个建议。

于 2013-01-04T04:19:50.913 回答