我有以下代码,应该添加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帧,我尝试按totalFrames
和totalFrames - 1
触发框架脚本,想法!
答案 0 :(得分:1)
addFrameScript
一起工作,所以我不知道是什么导致了这些问题,但你可以尝试使用hack。
使用onEnterFrame侦听器并检查当前帧是否等于帧数(-1)。 它并不理想,但是如果你坚持这个就可能就这么做了。
就addFrameScript
而言,我的猜测是它不起作用,因为addMovieClip直到循环的渲染部分才生效,因此添加的子帧的总帧数仍为0。您可以为onAddedToStage
或onAdded
添加侦听器,并在MovieClip
初始化后添加addFrameScript事件处理程序
答案 1 :(得分:0)
在这种情况下,totalFrames
变量是什么?你试过trace()
吗?我很确定它不包含nextLevAnim
中的总帧数的正确值,您应该使用nextLevAnim.totalFrames
代替。