Просмотр полной версии : Может ли функция возвращать не одно, а несколько значений?
willis83
31.01.2008, 22:22
Обычная функия возвращает одно значение
function fu(a) {
b = a + 1;
c = b + 5;
return b;
};А можно ли с помощью функции вернуть несколько значений которые она обрабатывает? Что-нибудь типа:
return (b,c);
Или вернуть массив?:rolleyes:
CrazyFlasher
31.01.2008, 22:23
массив конечно можно
willis83
31.01.2008, 22:30
А можешь показать как это будет выглядеть?
Не охото на каждый параметр функцию писать, лучше загоню их в один массив, в одной функции посчитаю и верну уже готовый массив.
CrazyFlasher
31.01.2008, 22:33
function (getArr:Array) : Array {
var returnArr:Array = getArr.concat();
returnArr.push(123);
return returnArr;
}
willis83, для оформления своего кода надо использовать теги .
willis83
31.01.2008, 23:48
Ладно, с этим всё понятно, а как мне передать значение переменной массива в свою переменную.
Моя функция обсчитывает _x, _y, _xscale, _yscale неких клипов по передаваемым функции параметрам. Тоесть мне надо передать одно из значений массива который возвращает функция в мою переменную
Mr. Fixit
31.01.2008, 23:57
function (getArr:Array) : Array {
var returnArr:Array = getArr.concat();
returnArr.push(mc._x);
returnArr.push(mc._y);
return returnArr;
}
willis83
01.02.2008, 00:15
Вы меня не так поняли. Я про код не самой функции, а уже про её вызов. Если простая функция, я могу написать:
mymovie._x = getx();
А если функция возвращает массив, то как мне передать в значение mymovie._x одно из значений массива?
CrazyFlasher
01.02.2008, 00:44
ну а код-то какой в этой функции? в getx()
mymovie._x = getx();
mymovie._x0 = mymovie._x[0];
mymovie._x1 = mymovie._x[1];
// ...
// итп, лучше в цикле
CrazyFlasher
01.02.2008, 01:40
Котяра, вы вообще поняли, что сами написали?
function a():Array { return [1,2,3,4,5]};
trace(a()[0]+' : '+a()[1]+' : '+a()[2]+' : '+a()[3]+' : '+a()[4]);
willis83
01.02.2008, 02:29
Мда.... можно же прямо из функции пораздовать всем значение, просто аргументом функции должно быть имя клипа. Спасибо за помощь!!!! Классный форум
Ну, формулируйте вопросы так, чтобы было понятнее чего вы хотите, вам и ответы в тему будут... В вашем случае вопрос был бы:
"как одной функцией присвоить значения множеству объектов?", вернуть массив значений в таком случает - всего лишь один из вариантов, не всегда самый подходящий.
Котяра, вы вообще поняли, что сами написали?
??? быдлокод . если результат функции массив, то почемуБыИНет?
Molecula
01.02.2008, 18:48
Типа такого что ли?
function getX():Array{
var arr_x:Array=[10,20,30];
return arr_x;
}
function setX(obj:Array){
trace(obj[0]);
}
setX(getX());
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.