Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передать в функцию ссылку на пременную (http://www.flasher.ru/forum/showthread.php?t=147125)

ElenaS 26.11.2010 17:44

Передать в функцию ссылку на пременную
 
Подскажите пожалуйста можно ли в функцию передать не значение, а ссылку на переменную? Т.е. у меня есть переменная типа int я хочу передать ее в функцию, которая бы эту переменную поменяла. Подскажите как это сделать?

i.o. 26.11.2010 17:51

простые типы в AS3 передаются по значению. Ответ — нельзя.

Rzer 26.11.2010 17:52

Передавать ссылку на функцию, которая модифицирует эту переменную.

Или передавать ссылку на экземпляр класса, содержащего эту переменную, и строковое имя этой переменной, а далее link[fieldName] = ...

ElenaS 26.11.2010 17:58

Rzer, спасибо огромное :). Переменная имеет set и get функции их можно передать?

Rzer 26.11.2010 18:05

Вторым способом. Например переменная, имеющая get/set функции называется someValue. Тогда Ваша функция будет выглядеть примерно так:
Код AS3:

public function modify(target:Object, fieldName:String):void{
  target[fieldName]target[fieldName] + 155;
}
 
...
 
modify(this, "someValue");


ElenaS 26.11.2010 18:10

Rzer Спасибо!!!!

Rzer 26.11.2010 18:26

Старайтесь в коде избегать таких конструкций, если они Вам понадобились, значит скорее всего что-то у Вас логически не правильно устроено.

alatar 26.11.2010 20:27

Что мешает вернуть новое значение из функции?
Код AS3:

private var changeMe:int = 5;
 
private function modify(value:int):int
{
    return value + 10;
}
...
changeMe = modify(changeMe);



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

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