![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Сообщений: 17
|
Суть проблемы:
1. Рисую кнопку, сверху на неё кидаю текстовое поле, делаю его динамическим. Даю имя текстовому полю - txtCaption. Конвертирую рисунок кнопки и текстовое поле в символ Button, даю символу имя - btnMyButton. 2. Пытаюсь поменять значение текстового поля внутри символа, таким образом - btnMyButton.txtCaption.text = 'MyButton'; Выдаёт ошибку: "1119: Access of possibly undefined property txtCaption through a reference with static type flash.display:SimpleButton." Как мне получить доступ к моему текстовому полю внутри символа Button? |
|
|||||
|
Modus ponens
|
getChildByName("txtCaption");
А вообще правильно - это написать класс для вашей кнопки и экспонировать свойство text вашего текстового поля через какое-нибудь свойство этого класса.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
А разве у класса SimpleButton есть метод getChildByName?
По логие вещей нужно делать так: Однако при написании маленького теста таковай вариант тоже привел к ошибке, зато вариант: возвращает текстовое поле... |
|
|||||
var t1:TextField = (btn_1.upState as DisplayObjectContainer).getChildAt(1) as TextField; var t2:TextField = (btn_1.downState as DisplayObjectContainer).getChildAt(1) as TextField; var t3:TextField = (btn_1.overState as DisplayObjectContainer).getChildAt(1) as TextField; //жирным шрифтом t1.htmlText = t2.htmlText = t3.htmlText = "<b>Кнопка"; Последний раз редактировалось iNils; 20.01.2009 в 15:23. |
|
|||||
|
Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
|
Alex Lexcuk, это вообще не выход - при изменении дизайна кнопки кол-во детей может резко измениться и getChildAt(1) будет уже возвращать не текстовое поле. Не понятно, почему не срабатывает getChildByName("txtCaption") - куда девается имя текстового поля?
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 17
|
(btnMyButton.upState as Sprite).getChildByName("txtCaption") не работает, т.к. при создании кнопки, имя текстового поля, заданное на этапе разработки как, txtCaption, после компиляции, получает почему-то какое-то умалчиваемое имя, у меня например - instance85, соответственно нужен код -
(btnMyButton.upState as Sprite).getChildByName('instance85') as TextField Вопрос - Почему меняется имя текстового поля? |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|