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

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

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

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
По умолчанию Обращение к локальной переменной через String

Добрый день, уважаемые форумчане!
Возможно ли обратиться к локальной переменной barMessage так же, как я обратился к полю класса _fooMessage?
Код AS3:
package 
{
	import flash.display.Sprite;
 
	public class Main extends Sprite 
	{
		private var _fooMessage:String = "foo message";
 
		public function Main():void 
		{
			foo();
			bar();
		}
 
		public function foo():void 
		{
			trace(this["_fooMessage"]); // выведет "foo message"
		}
 
		public function bar():void 
		{
			var barMessage:String = "bar message";
			//trace(...) ?
		}
	}
}


Последний раз редактировалось gait; 04.04.2012 в 12:27.
Старый 04.04.2012, 12:32
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Ты не поверишь:
Код AS3:
trace(barMessage)
Я понимаю, зачем к полю снаружи(!) стучаться:
Код AS3:
trace(someObj[someVar])
Но внутри метода зачем?
__________________
Поймай яблоко 2!

Старый 04.04.2012, 13:08
gait вне форума Посмотреть профиль Отправить личное сообщение для gait Найти все сообщения от gait
  № 3  
Ответить с цитированием
gait

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Ты не поверишь:
Код AS3:
trace(barMessage)
Кроме этого способа есть другие? (Хотелось бы обратиться через "barMessage", а не через barMessage).

Тут такое дело. Есть ~20 локальных переменных, у них в названии есть определенный id. То есть someVar1, someVar2, ..., someVar20. У меня есть массив someArr:Array = [3, 5, 8, 15, 17]. Я должен пройтись по всем someVar с id из массива и сделать с ними что-то. Если бы эти локальные переменные были полями класса, то было бы всё просто:
Код AS3:
var someArr:Array = [3, 5, 8, 15, 17];
for (var i:int = 1; i <= someArr.length; i++) 
{
	this["someVar" + someArr[i]].doSomeFunc();
}
Вот хотелось бы нечто подобное сделать с локальными переменными. Но, похоже, что подобным образом не получится, придется делать отдельный класс для локальных переменных, давать им имена и по ним выбирать.

Старый 04.04.2012, 13:14
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Может, отрезать палец тому, кто сделал 20 переменных с такими именами и переименовать их таки в массив?
someVari -> someVar[i-1]
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 04.04.2012, 13:21
gait вне форума Посмотреть профиль Отправить личное сообщение для gait Найти все сообщения от gait
  № 5  
Ответить с цитированием
gait

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
Цитата:
Сообщение от -De- Посмотреть сообщение
someVari -> someVar[i-1]
Еще есть проблема в том, что от в диапазоне от 1 до 20 некоторые переменные отсутствуют. То есть someVar1, someVar2, someVar4, someVar7.

Старый 04.04.2012, 13:25
Deimos747 вне форума Посмотреть профиль Отправить личное сообщение для Deimos747 Найти все сообщения от Deimos747
  № 6  
Ответить с цитированием
Deimos747
 
Аватар для Deimos747

Регистрация: Mar 2011
Сообщений: 243
Цитата:
Сообщение от gait Посмотреть сообщение
Еще есть проблема в том, что от в диапазоне от 1 до 20 некоторые переменные отсутствуют. То есть someVar1, someVar2, someVar4, someVar7.
Array позволяет оставлять пустые ячейки

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

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код AS3:
var someArr:Array = [someVar3, someVar5, someVar8, someVar15, someVar17];
for (var i:int = 1; i <= someArr.length; i++) 
{
	someArr[i].doSomeFunc();
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

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

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


 


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


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