AS3帧脚本立即执行而不是在指定时执行

时间:2012-10-16 11:17:23

标签: actionscript-3 flashdevelop flash-cs6

我有以下代码,应该添加MovieClip并在剪辑完成播放后向MovieClip添加一个框架脚本。然而,下面显示的代码会在MovieClip添加后立即触发框架脚本,我无法找出原因。

function debugClick(e:MouseEvent) : void
{    
  nextLevAnim = new NextLevelAnim();
  gfx.addChild(nextLevAnim);
  nextLevAnim.addFrameScript(nextLevAnim.totalFrames, NextLevel);
}

function NextLevel() : void
{
  nextLevAnim.addFrameScript(nextLevAnim.totalFrames, null);

  // Actions....
}

我尝试过更简单的示例并且工作正常,MovieClip长度为21帧,我尝试按totalFramestotalFrames - 1触发框架脚本,想法!

2 个答案:

答案 0 :(得分:1)

嗯,我没有和addFrameScript一起工作,所以我不知道是什么导致了这些问题,但你可以尝试使用hack。

使用onEnterFrame侦听器并检查当前帧是否等于帧数(-1)。 它并不理想,但是如果你坚持这个就可能就这么做了。

addFrameScript而言,我的猜测是它不起作用,因为addMovieClip直到循环的渲染部分才生效,因此添加的子帧的总帧数仍为0。您可以为onAddedToStageonAdded添加侦听器,并在MovieClip初始化后添加addFrameScript事件处理程序

答案 1 :(得分:0)

在这种情况下,totalFrames变量是什么?你试过trace()吗?我很确定它不包含nextLevAnim中的总帧数的正确值,您应该使用nextLevAnim.totalFrames代替。