这非常令人沮丧。我只是想创建一个动态文本,并在运行时将一些文本放入其中。
我收到此错误
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";
我希望我知道问题是什么。我有其他对象设置完全相同的方式,没有给我这个问题。我只是不知道如何调试。
谢谢!
答案 0 :(得分:2)
错误告诉您MC_state.textLabel.text
处的某个地方没有任何对象,因此无法在MC_state
内找到textLabel
或MC_state
或(不太可能){{ 1}}在text
内。
如果我冒险猜测,我认为你看到了这一点,因为这发生了:
你的某个地方有一个名为MC_state.textLabel
的动画片段,它有多个帧。您将gotoAndStop或gotoAndPlay绑定到具有名为MC_state
的文本字段的框架,这是您要更改的文本。
问题,以及从AS2过渡的人经常出现的问题是,当你执行gotoAndPlay / gotoAndStop函数时,movieClip不会立即更新,这在渲染阶段就会发生。然而,该函数之后的代码会立即执行,因此movieclip仍处于旧框架中。
有两种方法可以处理它
设置一个更新渲染事件的事件处理程序,然后更改文本。您可以通过运行textLabel
example
另一个(更好)选项是让所有框架中都有文字,并将其隐藏或隐藏,这样您就可以随时访问它。