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

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

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

Регистрация: Jul 2011
Сообщений: 18
По умолчанию Как обратиться к текстовому полю по имени в цикле?

Я программно создаю 3 текстовых поля:
Код AS1/AS2:
_root.createTextField("Text_1",1,30,0,30,30);
_root.createTextField("Text_2",2,60,0,30,30);
_root.createTextField("Text_3",3,90,0,30,30);
Теперь нужно задать свойства .text для всех трёх полей.
В Text_1 должно быть "1", в Text_2 - "2", в Text_3 - "3".

Можно написать так:
Код AS1/AS2:
Text_1.text=1;
Text_2.text=2;
Text_3.text=3;
Но хотелось бы написать что-то подобное:
Код AS1/AS2:
for (I=1;I<=3;I++)
  {Str="Text"+I;
   Str.text=I;}
Но конструкция Str.text=I не работает.

Что здесь можно придумать?
Как обратиться к текстовому полю по имени, заданному в строковой переменной?
__________________
Kiss my AS!

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

Регистрация: Feb 2012
Сообщений: 1,540
Код AS1/AS2:
for (I=1;I<=3;I++)
{
Str=this["Text"+I];
Str.text=I;
}
Я так когда-то делал

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS1/AS2:
for (var i=1; i<=10; i++){
	depth 		= i;
	tX 		= 100;
	tY 		= i*30;
	tf 		= this.createTextField("my_txt"+i, depth, tX, tY, 300, 100);
	tf.text 	= 'This is my first test field object text.';
}
__________________
Дети не должны знать о своих родителях

Старый 24.02.2012, 17:48
brodotsky вне форума Посмотреть профиль Отправить личное сообщение для brodotsky Найти все сообщения от brodotsky
  № 4  
Ответить с цитированием
brodotsky

Регистрация: Jul 2011
Сообщений: 18
MikroAcse, спасибо, работает.
Да здравствует this!

А я раньше думал, слово "this" придумали, чтобы язык ломать.

Добавлено через 5 минут
Tails, такая конструкция:
Код AS1/AS2:
tf = this.createTextField(...);
tf.text=''...'';
у меня во Flash MX (AS1) не работает.
trace (tf) возвращает undefined.
__________________
Kiss my AS!


Последний раз редактировалось brodotsky; 24.02.2012 в 17:54.
Старый 25.02.2012, 13:02
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Ставьте CS3 и переходите на АС2.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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