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

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

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

Регистрация: Nov 2006
Сообщений: 7
Question Error #1009: Не удается вызвать свойство...

Здравствуйте. Создал кнопку, внутри которой есть текстовое поле. К этой кнопке, я привязал класс.



Код AS3:
package 
{
	import flash.display.*;
	import flash.text.TextField;
	import flash.events.*;
 
	public class MyButton extends SimpleButton
	{
		public function MyButton()
		{
			addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
		}
 
 
		function fl_MouseClickHandler(event:MouseEvent):void
		{
	        	MyTextField.text = "Hello World!"; // Ошибка #1009
		}
	}
}
Поместил ее на главный фрейм. И при клике на кнопку, текстовому полю MyTextField должен присваивается новый текст, но в момент присваивания, вылезает ошибка TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". Почему объекта как будто нет?

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
если MyTextField это имя тексфилда, то делается все по другому..
свойства такого в классе у вас нет...

Код AS3:
(this.getChildByName("MyTextField") as TextField).text = "Hello World!";
Добавлено через 1 минуту
а, пардон..у вас екстенд от симплбаттона..тогда все еще замороченней ) нужно сначала получить ссылку на текущий стейт, в нем получить ссылку на текстфилд..
наследуйтесь лучше от спрайта.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Nov 2006
Сообщений: 7
Что то я не могу понять, как перенаследовать мою кнопку от спрайта...

Понял, сделал как сказали, стало норм. Спасиба)


Кому интересно

Код AS3:
(Sprite(this.upState).getChildAt(2) as TextField).text="Новый текст"; 
(Sprite(this.downState).getChildAt(2) as TextField).text="Новый текст"; 
(Sprite(this.overState).getChildAt(2) as TextField).text="Новый текст";
главное найти номер объекта для getChildAt, можно все перебрать

Код AS3:
var butState:Sprite = Sprite(this.upState);
for (var i:int = 0; i < butState.numChildren; i++) 
{
  var child:DisplayObject = butState.getChildAt(i);
  if (child is TextField)
  {		
    var tf:TextField = TextField(child);
    tf.text=name;
    break;
  }
}


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

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

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


 


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


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