错误#1009:无法访问空对象引用的属性或方法

时间:2012-03-28 15:51:05

标签: actionscript-3 flash actionscript

这非常令人沮丧。我只是想创建一个动态文本,并在运行时将一些文本放入其中。

我收到此错误

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at MethodInfo-1()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

我有一个名为textLabel的文本对象,它位于名为MC_state的动画片段中。 我得到它因为我使用:

MC_state.textLabel.text = "asdasd";

我希望我知道问题是什么。我有其他对象设置完全相同的方式,没有给我这个问题。我只是不知道如何调试。

谢谢!

1 个答案:

答案 0 :(得分:2)

错误告诉您MC_state.textLabel.text处的某个地方没有任何对象,因此无法在MC_state内找到textLabelMC_state或(不太可能){{ 1}}在text内。

如果我冒险猜测,我认为你看到了这一点,因为这发生了:

你的某个地方有一个名为MC_state.textLabel的动画片段,它有多个帧。您将gotoAndStop或gotoAndPlay绑定到具有名为MC_state的文本字段的框架,这是您要更改的文本。

问题,以及从AS2过渡的人经常出现的问题是,当你执行gotoAndPlay / gotoAndStop函数时,movieClip不会立即更新,这在渲染阶段就会发生。然而,该函数之后的代码会立即执行,因此movieclip仍处于旧框架中。

有两种方法可以处理它

  • 设置一个更新渲染事件的事件处理程序,然后更改文本。您可以通过运行textLabel example

  • 来加快舞台渲染速度
  • 另一个(更好)选项是让所有框架中都有文字,并将其隐藏或隐藏,这样您就可以随时访问它。