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

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

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

Регистрация: Jul 2006
Сообщений: 45
По умолчанию Создание TextField в цикле

Ситуация вкратце такая: есть массив из n элементов. Для каждого элемента нужно создать СВОЙ TextField
Код:
for ( i = 0 ; i <= (n-1) ; i ++ )   {
 myfieldName = myArray[i]
 this.createTextField(myfieldName , 0 , 0 , 0 , myfieldwidth , 25 ) 
}
такой вариант не проходит, потому что в таком случае создается n TextField'ов с одинаковым именем myfieldName, а мне надо в каждое поле прописывать текст, равный значению n-го элемента массива. Подскажите, пожалуйста как быть..

Старый 20.07.2006, 11:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Смотри как изящно первая строчка пишется
Код:
for (i = 0; i < n; i++)   {


По поводу сути вопроса. Имя myfieldName берется из массива myArray, что там запишешь, то в названии и получишь.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.07.2006, 11:58
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 3  
zhalexei

Регистрация: Jul 2006
Сообщений: 45
по мне так i <= (n-1) лучше.
не понял ответа. тот код который я привел создает n одинаковых полей с названием "myfieldName". так и называются. все N. проверял

Старый 20.07.2006, 12:21
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от zhalexei
по мне так i <= (n-1) лучше
Я понял, вы злостный враг оптимизация
Цитата:
Сообщение от zhalexei
не понял ответа. тот код который я привел создает n одинаковых полей с названием "myfieldName". так и называются. все N. проверял
Ах, да. У вас там глубина вечно нулевая, а надо уникальную.
Код:
n = 5;
myArray = ["txt0", "txt1", "txt2", "txt3", "txt4", "txt5"];
for (i = 0; i <= (n - 1); i++) {
	myfieldName = myArray[i];
	this.createTextField (myfieldName, i, 0, 0, myfieldwidth, 25);
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.07.2006, 12:37
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 5  
zhalexei

Регистрация: Jul 2006
Сообщений: 45
пасиба, заработало.. а что такое в данном случае "глубина", так и не понял?
теперь правда другая проблема, вполне ожидаемая возникает:
myfieldName.text="mytext";
не работает. возникает ошибка
There is no property with the name 'text'
как присвоить текст новому полю?


по поводу for..
как бы объяснить.. исключительно, имхо, может и не прав.. при такой записи:
Код:
for ( i = 0 ; i <= (n-1) ; i++ )   { //строка 1
	.......
} //строка 2
пройдя цикл в (n-1)-й раз прога не возращается на первую строку для проверки необходимости запускать цикл еще раз.

а при такой:
Код:
for ( i = 0 ; i < n ; i++ )   { //строка 1
	.......
} //строка 2
програма вернется на первую строку и убедится, что i стало равно n, а не (n-0.000001) к примеру
я не прав?


Последний раз редактировалось iNils; 20.07.2006 в 14:39.
Старый 20.07.2006, 14:04
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
for (var i = 0; i < 6; i++) {
	var myfieldName = 'txt'+i;
	var tf = this.createTextField (myfieldName, i, 0, i*30, myfieldwidth, 25);
        tf.text = 'Any text #'+i;
}
delete i;
delete tf;
delete myfieldName;

Старый 20.07.2006, 14:39
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 7  
zhalexei

Регистрация: Jul 2006
Сообщений: 45
неа..так не работает..

Старый 20.07.2006, 14:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
zhalexei, обратите внимание как другие оформляют свой код в теги, при выкладывании на форум.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.07.2006, 14:42
zhalexei вне форума Посмотреть профиль Отправить личное сообщение для zhalexei Найти все сообщения от zhalexei
  № 9  
zhalexei

Регистрация: Jul 2006
Сообщений: 45
виноват, быстрым ответом просто пользуюсь..

Старый 20.07.2006, 14:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от zhalexei
неа..так не работает..
Код:
n = 5;
myfieldwidth = 50;
myArray = ["txt0", "txt1", "txt2", "txt3", "txt4", "txt5"];
for (i = 0; i <= (n - 1); i++) {
	myfieldName = myArray[i];
	this.createTextField (myfieldName, i, 0, i * 25, myfieldwidth, 25);
	this[myfieldName].text = i;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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