AS3中的错误1009

时间:2011-08-05 08:43:30

标签: actionscript-3 oop textfield

我有一个名为inputWord的TextField实例,它在第一帧上不包含任何文本。在同一帧上,在actions层上,无论何时以任何方式引用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 个答案:

答案 0 :(得分:2)

问题出在gotoAndStop()

在as2中,当你执行gotoAndStop时,你可以立即访问框架中的资源,正如Kevin指出的那样,框架必须首先渲染

要执行此操作,您需要使用onrender侦听器在渲染帧时触发以处理与帧相关的逻辑。然后你需要使舞台无效,以强制渲染渲染。

像这样:

stage.addEventListener(Event.RENDER, onRenderStage);
protected function onRenderStage(ev:Event):void {
    inputWord.text = "smth"
    trace(inputWord.text);
}
gotoAndStop(5);
stage.invalidate();

答案 1 :(得分:1)

可能在第一帧上,inputWord尚未加载,因此您收到错误。在下一帧上,它被加载,因此文本正在成功设置。解决方案是在设置之前测试文本字段是否存在:

if (this.inputWord) this.inputWord.text = "smth";