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

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

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

Регистрация: Oct 2008
Сообщений: 52
Cool Создание n переменных

Допустим нужно создать n переменных, т.е. в ручном режиме мы не можем их создавать.
В actionscript2 это бы выглядело примерно так:
Код AS1/AS2:
var n:int=10;
for(var i:int=0;i<=n;i++){
var get("per"+String(i)):int;
}
Т.е. создаются переменные per1,per2...pern - в данном случаи 10 штук.
Как создавать n переменных в actionscript3???

Старый 28.12.2009, 14:28
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 2  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
а смысл то какой? массив вам уже не подходит?
__________________
Коллекционирую чужие ActionScript Блоги

Старый 28.12.2009, 14:43
nickorsk вне форума Посмотреть профиль Отправить личное сообщение для nickorsk Найти все сообщения от nickorsk
  № 3  
Ответить с цитированием
nickorsk

Регистрация: Oct 2008
Сообщений: 52
Цитата:
Сообщение от random13 Посмотреть сообщение
а смысл то какой? массив вам уже не подходит?
допустим мы используем массив, как имя переменной то формировать???
mas[x1,x2...xn] - то имя переменной формировалось раньше
Код AS3:
get("x"+String(i););
Смысл массив вообще использовать, нам придется обращаться к элементу массива и все равно использовать for при создании массива -т.е. лишняя ненужная работа. Мне нужно создавать переменные, а не элементы массива, хотя элементы массива сами могут быть переменными -только зачем мне это нужно.

Старый 28.12.2009, 14:59
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Создание массива:
Код:
var arr:Array = new Array();
Заметьте, массив уже создали, никаких for не нужно.
Заполнение массива:
Код:
for(var i:int=0; i<10; i++){
   arr[i] = /* тут значение, которе нужно сохранить ...*/
}
либо вручную:
Код:
arr[0] = 1;
arr[1] = 18;
...
Обращение к элементу массива:
Код:
var myVariable:int = arr[1]+arr[0];
Имя переменной в случае с использованием массива - это имя массива с номером элемента в квадратных скобках: arr[i].
В чем преимущества вашего подхода не ясно.

Старый 28.12.2009, 15:00
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 5  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
походу вы что то не понимаете...

Цитата:
допустим мы используем массив, как имя переменной то формировать???
mas[x1,x2...xn] - то имя переменной формировалось раньше
в чем проблема использовать ассоциативные массивы?
Код AS3:
var n:int=10;
var myArr:Array = new Array;
for(var i:int=0;i<=n;i++){
   myArr['per' + i] = '';
}

Код AS3:
Смысл массив вообще использовать, нам придется обращаться к элементу массива и все равно использовать for при создании массива -т.е. лишняя ненужная работа. Мне нужно создавать переменные, а не элементы массива, хотя элементы массива сами могут быть переменными -только зачем мне это нужно.
хмм извините вы сам тоже использовали зачем то при создании ваших переменных цикл...

смысл короче не раскрыли
__________________
Коллекционирую чужие ActionScript Блоги

Старый 28.12.2009, 15:41
nickorsk вне форума Посмотреть профиль Отправить личное сообщение для nickorsk Найти все сообщения от nickorsk
  № 6  
Ответить с цитированием
nickorsk

Регистрация: Oct 2008
Сообщений: 52
Спасибо за ответы

Добавлено через 3 часа 12 минут
В общем мне нужно создать двумерный массив типа Mas[n][n].
Собственно никак получить его используя только массивы не получается.
Если бы массив был 5*5, то мы его создали вручную, так:
Код AS3:
private  static var masx1:Array = ["00","01","02","03","04"];
private  static var masx2:Array = ["10","11","12","13","14"];
private  static var masx3:Array = ["20","21","22","23","24"];
private  static var masx4:Array = ["30","31","32","33","34"];
private  static var masx5:Array = ["40","41","42","43","44"];
private  static var masy:Array=[masx1,masx2,masx3,masx4,masx5];
Но если у нас массив типа n*n, нам надо создавать переменные masx1,masx2...masxn. Именно поэтому я и спрашиваю как создавать n переменных. С массивами никак не получается.

Старый 28.12.2009, 19:20
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 7  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
var n:int = 10;
 
var matrix:Array = [];
 
for(var i:int = 0; i < n; i++){
 
    var row:Array = [];
 
    for(var j:int = 0; j < n; j++){
 
        row.push(String(i) + String(j));
 
    }//for
 
    matrix.push(row);
 
}//for
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Dec 2009
Сообщений: 428
Цитата:
Сообщение от nickorsk Посмотреть сообщение
В общем мне нужно создать двумерный массив типа Mas[n][n].
Object Вам в помощь

Код AS3:
var n = 10;
 
//создается глобальный массив
var obj:Object = new Object();
 
 for(var j:int = 0; j < n; j++){
         //В цикле в массив дополняются подмассивы
	 var subObj:Object = new Object();
        //у каждого может быть куча разных свойств, в т.ч. и вложенных массивов
         subObj.firstVal = 'FirstValBy'+j;
	 subObj.secondVal = 'SecondValBy'+j;
	 obj[j] = subObj;
}
 
 
 
for(var k in obj) {
	trace('Arr #' + k);
	trace(obj[k].firstVal);
	trace(obj[k].secondVal);
	trace();
 
/*
Arr #0
FirstValBy0
SecondValBy0
 
Arr #1
FirstValBy1
SecondValBy1
...
*/
}
 
trace('__Arr #9 SecondVal = ' + obj[9].secondVal);
//__Arr #9 SecondVal = SecondValBy9
В общем то ничего нового

Старый 29.12.2009, 17:22
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 9  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
leofit, не путайте Object с массивом. Ваш код создаёт, так сказать, структуру размером Nx2 а не NxN.
__________________
тонкий тролль, осеянный благодатью

Старый 29.12.2009, 19:53
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 10  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Если, все таки нужно создание переменных, то классы могут быть динамическими:
Код AS3:
package  
{
	import flash.display.MovieClip;
 
	dynamic public class Test extends MovieClip
	{
		public function Test() 
		{
			for (var i: int = 0; i < 10; i++)
			{
				this["dynamicVar" + i] = i;
			}
 
			for (var prop: String in this)
			{
				trace(prop + " = " + this[prop]);
			}
		}
	}
}
__________________
Не всех война убила - многих покалечила

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

Теги
Создание n переменных
Опции темы
Опции просмотра

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

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


 


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


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