Actionscript 3:为什么在使用addFrameScript()控制动画时必须使用stop()?

时间:2016-09-03 17:58:51

标签: actionscript-3 animation

我有一个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);
}

我想知道的是,

  1. 为什么我的第一个功能没有按预期工作?我将函数插入动画MovieClip动画的最后一帧,但它没有等到动画到达最后一帧(即在parent到达第4帧的瞬间执行),

    < / LI>
  2. 这一行stop();如何解决我的动画问题?

0 个答案:

没有答案