Ошибка 1009 в AS3 - PullRequest
       1

Ошибка 1009 в AS3

1 голос
/ 05 августа 2011

У меня есть экземпляр TextField с именем inputWord, который не содержит текста в первом кадре.В том же фрейме, на слое действий, в любое время, когда я ссылаюсь на inputWord каким-либо образом, возникает ошибка:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at DC/frame1()[DC::frame1:19] //DC is the name of document class that I created.
at flash.display::MovieClip/gotoAndStop()
at DC()[C:\Users\nikkka\Desktop\flash\DC.as:25]

19 - это номер строки, где находится мой код, который включает inputWord.Это работает, я имею в виду, что я пишу inputWord.text = "smth"

, текст становится "smth", но возникает та же ошибка.Почему?

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

Проблема с gotoAndStop ()

в as2, когда вы делаете gotoAndStop, вы можете сразу получить доступ к ресурсам в фрейме, как указал Кевин, фрейм должен отображаться первым

чтобы сделать это, вам нужно использовать слушатель onrender для запуска, когда вы рендерили кадр, чтобы иметь дело с логикой, связанной с кадром. Затем вам нужно сделать сцену недействительной, чтобы заставить рендеринг сработать.

вроде так:

stage.addEventListener(Event.RENDER, onRenderStage);
protected function onRenderStage(ev:Event):void {
    inputWord.text = "smth"
    trace(inputWord.text);
}
gotoAndStop(5);
stage.invalidate();
1 голос
/ 05 августа 2011

Возможно, в первом кадре inputWord еще не загружен, поэтому вы получаете сообщение об ошибке.На следующих кадрах он загружается, поэтому текст устанавливается успешно.Решение - проверить наличие текстового поля перед его установкой:

if (this.inputWord) this.inputWord.text = "smth";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...