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

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

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

Регистрация: Dec 2009
Сообщений: 41
По умолчанию Обращение к компоненту по текстовому id

Здравствуйте, всем!

И опять вопрос от начинающего "программиста" (в форуме поискал, но ответа так и не нашел). Предположим, есть у меня множество компонентов, например типа Label, которые я создаю динамически. При создании, им присвоены id-шники "lbl_1","lbl_2",...,"lbl_N". Как мне обратится к такому компоненту имя лишь текстовую строку, содержащую его id? (В Borland'овской реализации C++ и Delphi например есть функция FindComponent(name:string), которая возвращает ссылку на компонент с именем name, нужна такая же для Flex)

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Можно, но криво и косо:
Код AS3:
for (var i:Number = 0; i < 10; i++)
{
	var label:Label = new Label();
	label.id = "lbl_" + i;
	label.text = "text" + i;
	label.y = i*20;
	this.addChild(label);
}
 
for each (var child:UIComponent in this.getChildren())
{
	if (child.id == "lbl_1")
		(child as Label).text = "New Label Text";
}
Куда правильнее хранить не id-шники ваших компонентов, а сразу ссылки на них. Тогда и искать ничего не прийдется.
__________________
2+2=5

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

Регистрация: Dec 2009
Сообщений: 41
А не подскажите как это сделать?

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
Допустим, создать такой массив с ссылками на эти объекты:
Код AS3:
var labelsArray:Array = [];
 
...
 
for (var i:Number = 0; i < 10; i++)
{
	var label:Label = new Label();
	label.text = "text" + i;
	label.y = i*20;
	this.addChild(label);
	labelsArray.push(label);
}
 
(labelsArray[1] as Label).text = "New Label Text";
Всё зависит от того как в дальнейшем Вам будет удобнее работать с этими компонентами.
__________________
2+2=5

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

Регистрация: Dec 2009
Сообщений: 41
Восхитительно, спасибо Вам, BeDLiNt! Который раз мне уже помогаете!!!

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

Регистрация: Mar 2008
Адрес: Moscow
Сообщений: 311
Отправить сообщение для BeDLiNt с помощью ICQ Отправить сообщение для BeDLiNt с помощью Skype™
spacecadet: Пожалуйста)
__________________
2+2=5

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

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

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


 


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


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