0

在 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 中使用的数组。我还想调用一个提供成绩的函数。不幸的是,我的函数似乎只被调用一次。构建数组时是否可以调用函数?请参阅“等级:”位。有什么问题?我该如何解决这个问题?

谢谢!

-拉克西米迪

4

1 回答 1

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在每次迭代时都不断地重置您的代码。

于 2010-08-17T02:26:19.700 回答