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

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

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

Регистрация: Feb 2010
Сообщений: 24
По умолчанию Обращение к динамическому тексту в библиотеке

Всем привет..
CS4
Суть такая я кидаю на сцену текстовое поле и перетаскиваю его в библиотеки. подключаю как класс TextB. Затем я динамически создаю эти поля вот так:

for(var i:int=0; i<btnCount; i++)
{
addChild(new TextB()).name = "text"+String(i);
getChildByName("text"+String(i)).x = 20;
getChildByName("text"+String(i)).y = 35*i+25;
trace(i);
}
до этого момента все замечательно.. тестирую, отрисовывается 5 текстовых полей..
но как только я пытаюсь изменить в этом цикле текст полей:
getChildByName("text"+String(i)).text = "текст"+String(i);
то получаю ошибку:
1119: Access of possibly undefined property text through a reference with static type flash.displayisplayObject.

Подскажите пожалуйста в чем причина? Как мне изменять текст надписи в вновь созданых объектах?


Последний раз редактировалось ipman; 18.02.2010 в 19:45.
Старый 18.02.2010, 19:54
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 2  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
getChildByName возвращает экземпляр класса DisplayObjectContainer, у которого нету свойства text.
Код AS3:
var txt:TextField = super.getChildByName('text'+i.toString()) as TextField;
txt.text = 'LOL';
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

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

Регистрация: Feb 2010
Сообщений: 24
Благодарю.

Добавлено через 17 минут
не работает. помогите.. в чем моя ошибка?
Код AS3:
for(var i:int=0; i<btnCount; i++)
{
 
  	addChild(new TextB()).name = 'text'+i.toString();
  	getChildByName('text'+i.toString()).x = 20;
  	getChildByName('text'+i.toString()).y = 35*i+25;
	var txt:TextField = super.getChildByName('text'+i.toString()) as TextField;
	txt.text = 'LOL'+i.toString();
}
пишет TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".


Последний раз редактировалось ipman; 18.02.2010 в 23:01.
Старый 19.02.2010, 00:16
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 4  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
TextB наследует Sprite или MovieClip? Ну тогда конечно же он не будет TextField'ом. Текстовое поле лежит внутри.

Код AS3:
for(var i:int=0; i<btnCount; i++){
	var text_b:TextB = super.addChild(new TextB()) as TextB;
	text_b.name = 'text'+i.toString();
	text_b.x = 20;
	text_b.y = 35*i+25;
	text_b.lolTextField.text = 'LOL'+i.toString();
}
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб

Старый 19.02.2010, 08:10
ipman вне форума Посмотреть профиль Отправить личное сообщение для ipman Найти все сообщения от ipman
  № 5  
Ответить с цитированием
ipman

Регистрация: Feb 2010
Сообщений: 24
Может я неправильно что то объясняю.. прошу за это извинить...так как я только первую неделю занимаюсь флэшем.
Тот код что вы написали тоже не работает. Я сделал скриншот как это все выглядит и весь исходный код. Помогите запустить эту заразу. Или может я вообще в неправильном направлении копаю. Может это все гораздо проще делается. Моя задача на динамичиски создаваемых объектах писать различный динамический текст.



Код AS3:
	var text_b:TextB = addChild(new TextB()) as TextB;
	text_b.name = 'text'+i.toString();
	text_b.x = 20;
	text_b.y = 35*i+25;
	text_b.TextField.text = 'LOL'+i.toString();
Добавлено через 1 час 36 минут
Спасибо тому кто пытался мне неучу помоч!) Все заработало!!
Вот замечательный мануал по этой теме (инглиш)
http://active.tutsplus.com/tutorials...-display-list/
Все расписано ООООЧЕнь понятно. Для начинающих просто СУПЕР.

блин настолько все понятней стало я тащусь.

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

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

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


 


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


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