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

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

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

Регистрация: Jan 2010
Сообщений: 62
По умолчанию Объявление переменной с неизвестным именем (AS3) Как?

В середине кода
Код AS3:
var i:int = 1;
this["variable" + i] = Math.Random(); * то же самое, что и * <b>variable1b> = Math.Random();
this["variable" + i] работает, и в данном случае присваивает значение от 0 до 1 переменной variable1.

Но как определять таким образом переменные?
Например мне надо задать 50 разных переменных (на самом деле ещё больше), причём их точное количество мне не известно.
Я думал что следующее прокатит:
Код AS3:
For (var i:int=1; i<51; i++)
{ 
 * var this["variable" + i]:int = Math.random();
 
}
Но не тут-то было... Хэлп.

Старый 14.02.2010, 20:19
inferrum вне форума Посмотреть профиль Отправить личное сообщение для inferrum Найти все сообщения от inferrum
  № 2  
Ответить с цитированием
inferrum

Регистрация: Jun 2007
Сообщений: 83
Только в массиве имхо.

Старый 14.02.2010, 20:23
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ассоциативный массив в помощь.

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

Регистрация: Jan 2010
Сообщений: 62
PS: Все эти переменные - это инстансы мувиклипа, которые будут добавлены ЭддЧайлдом, а потом анимированы, причём у каждой из них своя траектория (собсно для этого и нужно чтоб они были с разными именами)

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Если действительно надо как свойства - используйте flash.utils.Proxy, если этот участок кода некритичен к производительности. Но на мой взгляд, достаточно массива.
__________________
4am is time to rock

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

Регистрация: Jan 2010
Сообщений: 62
Код AS3:
var array:Array;
 
for (var i:int=1; i<51; i++)
{
array[i] = new Box();
this.addChild(array[i]);
array[i].x = -50;
array[i].y = -50;
}
 
 
up();
function up ():void
{
	for (var i:int=1; i<51; i++)
{
	TweenLite.to(array[i], 1, {x:Math.random()*(stage.stageWidth-50)+20,
				 y:Math.random()*(stage.stageHeight-50)+20, ease:Bounce.easeOut,
				 rotation:Math.random()*300, onComplete:up});
}
}
Как заставить его воспринимать array[i] как объект ?
TweenLite.to(array[i], 1, {x:Math.random()*(stage.stageWidth-50)+20,
y:Math.random()*(stage.stageHeight-50)+20, ease:Bounce.easeOut,
rotation:Math.random()*300, onComplete:up});

UP:
Долго ржал, когда понял, что забыл в var array:Array; дописать = new Array;
В общем таким образом можно задать даже 1000 объектов, не объявляя их вручную, и всё будет работать.

Спасибо всем за советы!


Последний раз редактировалось MidnightOne; 14.02.2010 в 21:38.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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