Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.11.2010, 17:44
ElenaS вне форума Посмотреть профиль Отправить личное сообщение для ElenaS Найти все сообщения от ElenaS
  № 1  
Ответить с цитированием
ElenaS

Регистрация: Nov 2010
Сообщений: 13
По умолчанию Передать в функцию ссылку на пременную

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

Старый 26.11.2010, 17:51
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
простые типы в AS3 передаются по значению. Ответ — нельзя.

Старый 26.11.2010, 17:52
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 3  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Передавать ссылку на функцию, которая модифицирует эту переменную.

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

Старый 26.11.2010, 17:58
ElenaS вне форума Посмотреть профиль Отправить личное сообщение для ElenaS Найти все сообщения от ElenaS
  № 4  
Ответить с цитированием
ElenaS

Регистрация: Nov 2010
Сообщений: 13
Rzer, спасибо огромное . Переменная имеет set и get функции их можно передать?

Старый 26.11.2010, 18:05
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 5  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Вторым способом. Например переменная, имеющая get/set функции называется someValue. Тогда Ваша функция будет выглядеть примерно так:
Код AS3:
public function modify(target:Object, fieldName:String):void{
   target[fieldName] =  target[fieldName] + 155;
}
 
...
 
modify(this, "someValue");

Старый 26.11.2010, 18:10
ElenaS вне форума Посмотреть профиль Отправить личное сообщение для ElenaS Найти все сообщения от ElenaS
  № 6  
Ответить с цитированием
ElenaS

Регистрация: Nov 2010
Сообщений: 13
Rzer Спасибо!!!!

Старый 26.11.2010, 18:26
Rzer вне форума Посмотреть профиль Отправить личное сообщение для Rzer Посетить домашнюю страницу Rzer Найти все сообщения от Rzer
  № 7  
Ответить с цитированием
Rzer
 
Аватар для Rzer

блогер
Регистрация: Feb 2007
Адрес: Spb
Сообщений: 613
Записей в блоге: 8
Отправить сообщение для Rzer с помощью ICQ
Старайтесь в коде избегать таких конструкций, если они Вам понадобились, значит скорее всего что-то у Вас логически не правильно устроено.

Старый 26.11.2010, 20:27
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 8  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Что мешает вернуть новое значение из функции?
Код AS3:
private var changeMe:int = 5;
 
private function modify(value:int):int
{
    return value + 10;
}
...
changeMe = modify(changeMe);

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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