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

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

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

Регистрация: Dec 2008
Сообщений: 17
По умолчанию Тип Button

Суть проблемы:
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?

Старый 20.01.2009, 13:21
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
getChildByName("txtCaption");
А вообще правильно - это написать класс для вашей кнопки и экспонировать свойство text вашего текстового поля через какое-нибудь свойство этого класса.
__________________
Hell is the possibility of sanity

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
А разве у класса SimpleButton есть метод getChildByName?
По логие вещей нужно делать так:
Код AS3:
(btnMyButton.upState as Sprite).getChildByName("txtCaption");
Однако при написании маленького теста таковай вариант тоже привел к ошибке, зато вариант:
Код AS3:
(btnMyButton.upState as Sprite).getChildAt(1);
возвращает текстовое поле...

Старый 20.01.2009, 15:13
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код AS3:
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.
Старый 20.01.2009, 15:41
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 5  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Alex Lexcuk, это вообще не выход - при изменении дизайна кнопки кол-во детей может резко измениться и getChildAt(1) будет уже возвращать не текстовое поле. Не понятно, почему не срабатывает getChildByName("txtCaption") - куда девается имя текстового поля?

Старый 22.01.2009, 16:36
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 6  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
(btnMyButton.upState as Sprite).getChildByName("txtCaption") не работает, т.к. при создании кнопки, имя текстового поля, заданное на этапе разработки как, txtCaption, после компиляции, получает почему-то какое-то умалчиваемое имя, у меня например - instance85, соответственно нужен код -
(btnMyButton.upState as Sprite).getChildByName('instance85') as TextField
Вопрос - Почему меняется имя текстового поля?

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

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

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


 


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


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