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

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

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

Регистрация: May 2011
Адрес: Санкт-Петербург
Сообщений: 44
По умолчанию Создание нового текстового поля в цикле

Кто знает, как создавать каждый раз новое текстовое поле с каждой итерацией цикла?
Примерное условие: создание переменной с именем "text_" с добавлением "0, 1, 2" и так до "10", чтобы получилось "text_0" и так далее.

Пытался решить проблему своим способом не получилолсь.
Код AS3:
for (var i:int = 0; i>10; i++) {
	var str = String(i);
	var ["text_" + str]:TextField = new TextField;
	["text_"+str].text = str;
	addChild ["text_"+str];
}
Заранее благодарен.

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
нет смысла в создании переменных именно с такими именами

запихивайте созданную переменную в массив, и по индексу обращайтесь, получится те же самые 0,1,2..
Код AS3:
var arr:Array = []; //лучше сделать приватную переменную
for (var i:int = 0; i>10; i++) {
	var fld:TextField = new TextField();
	fld.text = String(i);
	arr.push(fld);
	addChild(fld);
}
__________________
low +

Старый 27.05.2011, 19:51
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 3  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Во-первый тело вашего цикла выполняться не будет, обратите внимание на условие.
Код AS3:
for (var i:int = 0; i < 10; i++)
{
    var tf:TextField = new TextField();
    this["text_" + i] = tf;
    tf.text = i.toString();
    addChild(tf);
}
Необходимым условием выполнения является динамичность класса, к экземпляру которого добавляются текстовые поля (например, наследование от MovieClip). Это позволяет нам создавать поля экземпляра подобным образом:
Код AS3:
this["text_" + i] = tf;

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

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от bav Посмотреть сообщение
Необходимым условием выполнения является динамичность класса
Согласен, если требуется создавать ссылки на TextField из инстанса текущего класса. Как видно, автору это безразлично, так что можно создавать объекты с единственной ссылкой - на дисплей-лист:

Код AS3:
    for (var i:int = 0; i < 10; i++)
    {
        var tf:TextField = new TextField();				
        tf.name = "text_" + i;
        addChild(tf);
    }			
 
    var tf2:TextField = getChildByName("text_1") as TextField;

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Сeргей Посмотреть сообщение
Примерное условие: создание переменной
Это трудный путь. Зачем так сложно? Могу посоветовать протоптанную дорожку.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Незнаю уместным будет ли коммент, так как только перехожу на третий экшен.
Я бы поступил так, создал класс который выполняет всё что описано и итерации и в цикле просто вызывал этот метод. Попутно выполняя коммент Jewelz

Добавлено через 12 минут
Точнее результат пушировал в массив.
__________________
return this...

Старый 28.05.2011, 00:14
Сeргей вне форума Посмотреть профиль Отправить личное сообщение для Сeргей Найти все сообщения от Сeргей
  № 7  
Ответить с цитированием
Сeргей

Регистрация: May 2011
Адрес: Санкт-Петербург
Сообщений: 44
С условием лоханулся крепко.
Спасибо всем подсказавшим!
Динамичность класса мне действительно безразлична, но на будущее запомню. Просто я пишу код непосредственно во fla файле, а классы использую только по мере необходимого.
dimarik, если не трудно, подскажите.

Старый 28.05.2011, 00:58
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
Точнее результат пушировал в массив.
Пушируйте [x]
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 28.05.2011, 01:00
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Ответ дан в посте #2
__________________
Отряд Котовскага

Старый 28.05.2011, 06:15
Сeргей вне форума Посмотреть профиль Отправить личное сообщение для Сeргей Найти все сообщения от Сeргей
  № 10  
Ответить с цитированием
Сeргей

Регистрация: May 2011
Адрес: Санкт-Петербург
Сообщений: 44
Че-то торможу в последнее время.
Спасибо, еще раз. С массивом, пожалуй, наиболее лучший вариант.

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

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

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


 


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


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