0

我有以下代码,它应该在剪辑完成播放后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 帧长,我尝试通过totalFramesand触发帧脚本totalFrames - 1,但没有任何想法!

4

2 回答 2

1

嗯,我工作addFrameScript不多,所以我不知道是什么导致了问题,但你可以尝试使用 hack。

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

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

于 2012-10-16T18:44:16.530 回答
0

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

于 2012-10-16T12:23:39.407 回答