Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Может ли функция возвращать не одно, а несколько значений? (http://www.flasher.ru/forum/showthread.php?t=107408)

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;
}


iNils 31.01.2008 22:58

willis83, для оформления своего кода надо использовать теги [code][/code].

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()

Котяра 01.02.2008 01:36

вот так
 
Код:

    mymovie._x = getx();
        mymovie._x0 = mymovie._x[0];
        mymovie._x1 = mymovie._x[1];
        // ...
        // итп, лучше в цикле



Часовой пояс GMT +4, время: 19:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.