Flex. Как вызвать функцию с переменным числом параметров?

Допустим, у меня есть этот класс:

package{
  import flash.display.Sprite;
  public class Main extends Sprite{
    public function Main(){
        trace(getAverage(1,2,3));
        trace(getAverage(1,2,3,4));
        trace(getAverage(1,2,3,4,5));
    }
    public function getAverage (...numbers) {
      var total = 0;
      for (var i = 0; i < numbers.length; i++) {
        total += numbers [i];
      }
      return total / numbers.length;
    }
  }
}

Как мне добиться «противоположного» этому? А именно, как я могу теперь ВЫЗВАТЬ 'getAverage' с динамическое количество параметров?

Например, если я хотел сделать что-то НРАВИТСЯ :

var r:int=Math.random()*6;
var a:Array=new Array();
for (i:int=0;i<r;i++) {
  a[i]=Math.random()*22;
}
// Now I have 'r' Number Of Parameters Stored In 'a'
//   How Do I Call getAverage, with all the values in 'a'??
//   getAverage(a) isn't right, is it?
//   I'm looking for something similar to getAverage(a[0],a[1],a[...]);

var av:Number=getAverage(???);

Я хочу знать, есть ли у меня функция, которая принимает переменное количество аргументов, это отлично, но как я могу ПОЗВОНИТЬ ЕГО с переменным количеством аргументов, если это число неизвестно во время выполнения? Возможно, это невозможно ... Я просто не уверен, так как 'callLater', похоже, может принимать массив и каким-то образом сгенерировать из него динамическое количество параметров ...

ПРИМЕЧАНИЕ: Ответы, состоящие исключительно из «Почему вы хотите это сделать?», будут отвергнуты.

PS Это НЕ о вычислении средних значений! Я ПРИЗНАЮ Есть более простые способы сделать все это! (Я мог бы просто написать getAverage, чтобы принимать единственный массив в качестве единственного параметра) Вышеупомянутое - это просто ПРИМЕР для иллюстрации моего вопроса. КАК ПЕРЕДАТЬ ДИНАМИЧЕСКОЕ КОЛИЧЕСТВО ПАРАМЕТРОВ В ФУНКЦИЮ?

5
задан Joshua 4 October 2010 в 04:14
поделиться