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

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

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

Регистрация: Aug 2012
Сообщений: 145
По умолчанию Задавание имен переменным в цикле

Здравствуйте!
мне нужно сделать так чтобы на первый круг цикла for создавалась переменная items1 на второй items2 и т.д. проблема в том, как можно добавить символ к имени?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
package {
    public dynamic class Test {
         public function Test() {
               for (var i:int = 0; i < 10; i++) {
                    this["items" + i] = "someValue";
               }
         }
    }
}
Вот так. Но этот подход вообще не правильный. Лучше использовать масив.

Старый 17.01.2013, 14:41
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 3  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
я не совсем знаком с классами но где создается переменная items+i?
проверял так:
Код AS3:
 for (var i:int = 0; i < 10; i++) 
	{
               this["items" + i] = "someValue";
	       trace (items1)
         }
выдает ошибку что не существует items1

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
trace(this['items1']);
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Jan 2013
Сообщений: 126
Код AS3:
     var arr:Array = ["i", "like", "this", "game"];
 
            for each (var items:String in arr)
 
            {
                trace (items);
            }

Старый 17.01.2013, 15:06
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 6  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
а какова типа создается переменная?

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

Регистрация: Jan 2013
Сообщений: 126
Цитата:
Сообщение от XMON Посмотреть сообщение
как можно добавить символ к имени?
Код AS3:
var $Container:MovieClip = new MovieClip ();
			stage.addChild ($Container);
			var arr:Array = ["i", "like", "this", "game"];
            var i:uint = 0;
            for each (var item:String in arr)
            {
                var $Clip:MovieClip = new MovieClip();
				with ($Clip) 
				{
					graphics.beginFill (Math.random() * 0xFFFFFF);
					graphics.drawRect (0, 0, 30, 30);
					graphics.endFill ();
				}
 
                $Container.addChild($Clip);
 
                arr = [$Clip];
                var u:uint = arr.length;
 
                while (u--)
                {
                    arr[u].y = 10 * i * 5;
                    arr[u].name = i.toString();
                }
 
				$Container.x = stage.stageWidth / 2;
				$Container.y = stage.stageHeight / 2;
                i++;
			}
или я неправильно понял?!

Старый 17.01.2013, 15:58
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 8  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
то есть не символ а букву.
пример:
каждый круг цикла создавалась переменная с именем item1, item2, item3 и так далее
а первый пример я не совсем понял

Старый 17.01.2013, 16:12
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
namespaces, это плохой тон в ас3 использовать символ $ в именах переменных. Не по конвенции. Не надо учить этому новичков.

Старый 17.01.2013, 16:24
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 10  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
2XMON: Не учитесь плохому! Учитесь правильному. "мне нужно сделать так чтобы на первый круг цикла for создавалась переменная items1 на второй items2" - вам не нужно. Это плохо, плохо, плохо!
Послушайте caseyryan в посте №2: "Но этот подход вообще не правильный. Лучше использовать масив."
Код AS3:
//пишем код в кадрах
var a:Array = []; //создаем массив a, который будет виден из любой функции, код которой написан в кадре
 
function create():void { //заполняем массив, скажем, мувиками
  for (var i:int =0; i<10; i++){
    var mc:MovieClip = new MovieClip(); addChild(mc); mc.x = i*10; mc.y=i*10;
    a.push (mc);
  }
}
 
function move ():void { //перемещаем все мувики в a на 10 пикселей вправо, вниз
  for (var i:int=0; i<10; i++){
    var mc:MovieClip = a[i];
    mc.x+=10; mc.y+=10;
  }
}
 
create();
move();
__________________
мой пустой блог

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

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

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


 


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


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