我有一个45帧长的MovieClip用于动画目的。我要做的是,在MovieClip到达动画结束后,它会要求其父级移动到另一帧。
在this question所提供的工作之后,我得到了它的工作,遇到了困难,对发生的事情了解甚少。
我理解addFrameScript
的工作原理。起初,我在这个非常简化的代码中得到了一些东西,
var parent:MovieClip = new CustomClass()
/* CustomClass has seven frames. Each has their own animating MovieClip placed
* in the stage. 'stop();' also has been inserted to each frame
*/
parent.addFrameScript (4, endOfAnimation);
function endOfAnimation ()
{
/* Let's just call the instance of the animating MovieClip inside
* 'parent' with 'animation'
*/
var lastFrame = parent.animation.totalFrames - 1;
parent.animation.addFrameScript (lastFrame, customGoto);
}
function customGoto ()
{
parent.gotoAndStop (5);
}
请注意,function customGoto ()
之前的行只是为了使事情更加清晰。任何不好的可能性都在于那些线路不应该担心。我遇到的困惑可以在function customGoto ()
找到。
函数本身是不言自明的:让parent
MovieClip转到另一帧。并且它完成了它的工作,但是有一个问题:它不会等待动画完成,即parent
MovieClip在到达第4帧时到达第5帧。
在这里和那里搜索线索,我没有得到有意义的结果。所以我修改了代码本身。经过几次试验,我最终得到了按需工作的功能
function customGoto ()
{
stop();
parent.gotoAndStop (5);
}
我想知道的是,
为什么我的第一个功能没有按预期工作?我将函数插入动画MovieClip动画的最后一帧,但它没有等到动画到达最后一帧(即在parent
到达第4帧的瞬间执行),
这一行stop();
如何解决我的动画问题?