ОК, так что мы все знаем, что использование параметра ... (rest) в функции позволяет нам передавать любое количество аргументов, как в примере в руководстве по Adobe AS3:
function traceArgArray(x: int, ... args) {
for (var i:uint = 0; i < args.length; i++) {
trace(args[i]);
}
}
traceArgArray(1, 2, 3);
НО, что бы мне хотелось сделать, это иметь возможность ЛИБО передавать отдельные аргументы ИЛИ передавать аргументы из уже существующего массива:
myArray:Array = new Array(1,2,3);
и так:
traceArgArray (туАггау);
Как я уже писал, функция обрабатывает myArray как один объект, поэтому на выходе получается 1,2,3 - представление массива в целом, а не отдельного содержимого массива.
Чтобы преобразовать myArray в список с разделителями-запятыми, который оператор остальных распознал бы как список отдельных элементов, я попытался сделать следующее:
traceArgArray(myArray.join());
но это не изменило вывод. Похоже, что в этом случае аргумент интерпретируется как одна строка, а не как разделенный запятыми список.
Итак, загадка, с которой, я надеюсь, кто-то может мне помочь, может быть выражена одним из двух способов:
Можно ли заставить параметр rest обрабатывать аргумент массива как список аргументов, разделенных запятыми?
-или-
Есть ли способ, которым я могу преобразовать массив в список, разделенный запятыми, и затем передать этот список функции AS в виде списка, разделенного запятыми (а не длинной строки), чтобы оператор rest мог правильно его интерпретировать?
Основная вещь, которую я хочу сделать - возможность передавать массивы значений в функции, которые принимают любое количество аргументов, - может показаться полезной, поэтому, возможно, есть обходной путь, которого я не вижу потому что я зациклен на самом операторе отдыха.
Спасибо за чтение!