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

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

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

Регистрация: May 2009
Сообщений: 134
По умолчанию Правда ли что для кнопки нельзя применять addChild

Пытаюсь создать текстовое поле внутри кнопки. и выдает ошибку
Цитата:
1180: Call to a possibly undefined method addChild.
Но самое неприятное, это когда обращаюсь к уже существующему текстовому полю в кнопке и мне компилятор отвечает:
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Tool()
at ToolPanel()
Как тогда менять текст на кнопке?

Добавлено через 4 минуты
А вот такое выражение работает, это я уже знаю:
Код AS3:
((super.upState as DisplayObjectContainer).getChildAt(1) as TextField).text = "новый текст"
Но хотелось бы обращаться напрямую а не через индекс.....


Последний раз редактировалось kaetano; 23.05.2009 в 23:43.
Старый 23.05.2009, 23:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А как вы обращались напрямую?
Ответ на непосредстанный вопрос - нет, SympleButton не наследует класс DisplayObjectContainer.
__________________
Hell is the possibility of sanity

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

Регистрация: May 2009
Сообщений: 134
Цитата:
Сообщение от wvxvw Посмотреть сообщение
А как вы обращались напрямую?
Ответ на непосредстанный вопрос - нет, SympleButton не наследует класс DisplayObjectContainer.
Нуууу.... в общем без изысков обращалась каких либо. В конструкоре класса кнопки прямо так и написала:
Код AS3:
var txtField:TextField;//поле, уже созданное в кнопке
txtField.text = "новый текст";
Жаль что не наследуется.... пойду-ка еще гляну теорию и древо наследования...
спасибо!


Последний раз редактировалось kaetano; 24.05.2009 в 00:51.
Старый 24.05.2009, 01:26
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 4  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Прямо в кнопку(SimpleButton) добавлять детей нельзя. Пользуйтесь:
SimpleButton.upState
SimpleButton.overState
SimpleButton.downState

Код AS3:
var tf:TextField = new TextField();
tf.text = "Hello";
var up:Sprite = new Sprite();
up.addChild(tf);
SimpleButton.upState = up;
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать!


Последний раз редактировалось 2morrowMan; 24.05.2009 в 01:29.
Старый 24.05.2009, 16:53
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а может так?
Код AS3:
var tf:TextField = new TextField();
tf.text = "Hello";
SimpleButton.upState = tf;
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Рисуете на кнопке поле ручками и обращаетесь потом
Код:
		private function changeLabel(sim:SimpleButton,_str:String):void{
			((sim.upState as DisplayObjectContainer).getChildAt(1) as TextField).text = _str;
			((sim.downState as DisplayObjectContainer).getChildAt(1) as TextField).text = _str;
			((sim.overState as DisplayObjectContainer).getChildAt(1) as TextField).text = _str;
		}
Исходничек http://www.murmadillo.tut.su/html/me...utton-href.zip

Старый 24.05.2009, 18:05
2morrowMan вне форума Посмотреть профиль Отправить личное сообщение для 2morrowMan Найти все сообщения от 2morrowMan
  № 7  
Ответить с цитированием
2morrowMan
 
Аватар для 2morrowMan

Регистрация: Aug 2007
Сообщений: 467
Цитата:
Сообщение от cleptoman Посмотреть сообщение
а может так?
Код AS3:
var tf:TextField = new TextField();
tf.text = "Hello";
SimpleButton.upState = tf;
Можно и так, если кроме TextField больше ничего не надо.
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать!

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
хм...а зачем столько гемороя? чем MovieClip не угодил?

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

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

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


 


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


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