时间轴中的代码与使用文档类之间的差异

时间:2011-03-09 22:26:24

标签: flash actionscript-3

我在时间轴中直接访问/修改了某些影片剪辑的属性。 然后我做了正确的事情并将代码移动到Document类。我将以前在时间轴中的代码放入文档类构造函数中。

我遇到的问题是,如果我“太快”访问影片剪辑属性,则会报告它们为空。如果我将代码放入计时器事件回调中大约半秒钟,或者使用大约8或更高的帧进行addFrameScript调用,则影片剪辑引用是有效的并且一切正常。

因此,出于某种原因,时间线中的代码被调用时,所有影片剪辑实例都是有效的。但是,当在文档类构造函数内部时,它们不是。我已尝试使用ENTER_FRAME事件回调,但影片剪辑仍未准备就绪。

代码应该根据一些loaderinfo参数更改一些影片剪辑属性,所以我需要在开始动画之前设置这些属性。

1 个答案:

答案 0 :(得分:3)

  

因此,出于某种原因,时间线中的代码被调用时,所有影片剪辑实例都是有效的。但是,当在文档类构造函数内部时,它们不是。

没错。在将主动画片段(“时间轴”)添加到舞台之前调用构造函数。时间轴是一个继承flash.display.MovieClip的对象,它必须在它出现在任何地方之前进行实例化。顺便提一下,当您不分配文档类时也会发生这种情况。

要确保您访问已正确初始化的属性(例如您在IDE中放置在舞台上的对象),请将相关代码移动到事件处理程序中并侦听Event.ADDED_TO_STAGE