Можно ли вызвать функцию при построении массива? - PullRequest
0 голосов
/ 17 августа 2010

Можно ли вызвать функцию при построении массива во 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

1 Ответ

0 голосов
/ 17 августа 2010

Вы заявили, что ваша функция была вызвана только один раз.Тем не менее, в вашем коде вы только явно вызываете его один раз.У меня проблемы с видением вашей проблемы.В 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 на каждой итерации.

...