Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с текстовым полем в классе. (http://www.flasher.ru/forum/showthread.php?t=171258)

Ruzofmo 12.11.2011 15:54

Проблема с текстовым полем в классе.
 
Добавляю на сцену экземпляр класса, передаю параметр string ,который должно принять текстовое поле.
Код AS3:

public function ButtonsChange(IntTemp:MovieClip,TitleTemp:String)
                {
                        STAGE = IntTemp;
                        STAGE.addChild(this);
                        TITLE = TitleTemp;
                        text_tf.text = TITLE;
                        this.addEventListener(MouseEvent.MOUSE_OVER, DriftToNext);
                        this.addEventListener(MouseEvent.MOUSE_OUT, DriftToDown);
                }

Но выдаёт ошибку:
Цитата:

Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
То есть text_tf.text = null . Хотя если присваивать значение TITLE в функции DriftToNext , то всё нормально.
Почему так? Как с этим бороться?

strangedk 12.11.2011 16:09

Поставьте trace(text_tf); что-то мне подсказывает что null именно там

и вообще, код совершенно неясен, что такое STAGE, что такое TITLE, что в данном случае this, и откуда берется text_tf

Ruzofmo 12.11.2011 16:16

Цитата:

Сообщение от strangedk (Сообщение 1045498)
Поставьте trace(text_tf); что-то мне подсказывает что null именно там

и вообще, код совершенно неясен, что такое STAGE, что такое TITLE, что в данном случае this, и откуда берется text_tf

Из главного класса вызываю так :
Код AS3:

var ButFact:ButtonsChange = new ButtonsChange(MovieClip(this),'Тест');

text_tf расположен в ButtonsChange.
Цитата:

trace(text_tf); // null
this в данном случае это класс ButtonsChange.

strangedk 12.11.2011 16:21

trace(text_tf); // null

ну, так чего вы хотите?

значит не инициализирован ваш TextField

Ruzofmo 12.11.2011 16:30

Цитата:

Сообщение от strangedk (Сообщение 1045502)
значит не инициализирован ваш TextField

А как его инициализировать?

strangedk 12.11.2011 17:11

покажите где он создается, он присутствует на stage или нет?

Цитата:

Сообщение от Ruzofmo (Сообщение 1045506)
А как его инициализировать?

ну, если прямо ответить на вопрос, то
Код AS3:

text_tf = new TextField();

но это совсем не значит что в вашем контексте это так и есть.
- давайте не пальцем в небо, а разбирать код.

noobuser 12.11.2011 19:21

было чтото подобное у меня. решилось следующим образом, нужно проверять инициализировался ли объект.
Код AS3:

if (объект) {
init();
} else объект.addEventListener(Event.ADDED_TO_STAGE,init)

а в функции init уже производить все ваши манипуляции.


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

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