Показать сообщение отдельно
Старый 20.12.2007, 08:35
Amra Kimmerian вне форума Посмотреть профиль Отправить личное сообщение для Amra Kimmerian Найти все сообщения от Amra Kimmerian
  № 5  
Ответить с цитированием
Amra Kimmerian

Регистрация: Dec 2006
Адрес: Россия, Пермь
Сообщений: 72
Отправить сообщение для Amra Kimmerian с помощью ICQ
2 VovkaMorkovka. a и b - это не неопределенное количество аргументов, их число равно двум.

2 __etc. Да есть, даже два и в обоих вызов ф-ии такой:
Код:
traceArgArray(1, 2, 3);
Проблема в том что 1, 2 и 3 это последовательность из 3-х аргументов, но никак не неопределенное их количество.

2 K.A.T.A.F.A.L.K.E.R . Опять же вызов ф-ии:
Код:
test(1,2,3)
с однозначно определенным количеством аргументов - тремя.

Повторюсь: проблема не в том чтобы обработать в функции неопределенное количество аргументов, а проблема в том чтобы подать в ф-ию неопределенное количество аргуметов. Что то типа этого:
Код:
// создаем массив с объектами
var maxArgs:Number = 3;
var argsArray:Array = new Array();
for (var i:Number=0; i<maxArgs; i++) {
	var object:Object = new Object();
	argsArray[i]=object;
}
trace ("array all: "+argsArray); // array all: [object Object],[object Object],[object Object]
function traceArgArray(... args):void
{
    for (var i:uint = 0; i < args.length; i++)
    {
        trace("element "+i+" "+args[i]); 
    } 
}
// передаем массив в функцию
traceArgArray(argsArray); // element 0 [object Object],[object Object],[object Object]
Но, как видно, это не работает - переданный массив принимается как один первый аргумент (было бы ужасно если бы не так ).
Я не нашел в хелпе, как это можно сделать. Или я не вижу очевидного.
__________________
It shall be done.