我的项目中有这个功能
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);
}
}
}
答案 0 :(得分:1)
您需要使用form.numElements
并进行迭代。每个元素都可以通过form.getElementAt( iterator )
访问。
答案 1 :(得分:0)
我知道你没有问这个问题,而且我不确定你要解决的问题,但你操作FormItems大小超出标准生命周期功能的代码有点闻起来很有趣。只是一个建议。