我可以在Flex 3中构建数组时调用函数吗?
public function gridBuilder(myArray:Array):void {
var i:uint;
for (i=0; i<myArray.length; i++){
dGArray = [
{Name: myArray[i].name, Type: 'A:', Score: myArray[i].score, Rank: myArray[i].rank, Grade:(myFunction(myArray[i].rank, myArray[i].max_rank))},
{Name: myArray[i].name, Type: 'B:', Score: myArray[i].score, Rank: myArray[i].rank }
]
}
dgAC = new ArrayCollection(dGArray);
}
MyArray是远程调用数据库的结果。然后我准备要在dataGrid中使用的数组。我也想调用一个提供成绩的功能。不幸的是,我的功能似乎只被调用一次。在构建数组时是否可以调用函数?请参阅“等级:”位。有什么问题?我该如何解决这个问题?
谢谢!
-Laxmidi
答案 0 :(得分:0)
你说你的功能只被调用一次。然而在你的代码中,你只是明确地调用它一次。我无法看到您的问题。在ActionScript中,您可以创建一个对象数组,其中属性值可以来自函数的返回值。
编辑更改您的代码以执行此操作:
public function gridBuilder(myArray:Array):void {
var i:uint;
var dGArray:Array = [];
for (i=0; i<myArray.length; i++) {
dgArray.push({Name: myArray[i].name,
Type: 'A:',
Score: myArray[i].score,
Rank: myArray[i].rank,
Grade:myFunction(myArray[i].rank,myArray[i].max_rank)});
dgArray.push({Name: myArray[i].name,
Type: 'B:',
Score: myArray[i].score,
Rank: myArray[i].rank});
}
dgAC = new ArrayCollection(dGArray);
}
您原始代码的问题在于您在每次迭代时都会重置dGArray
。