当传统补间在第一秒没有使用stop()时如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当传统补间在第一秒没有使用stop()时如何解决?相关的知识,希望对你有一定的参考价值。

如何使用stop()命令在动作脚本编码中使用经典补间动作移动对象时如何解决?在我的时间轴上,我的对象在经典的补间动作中运行良好。但是当我按下ctrl enter时,对象不会随着动作移动。

我试过'gotoAndStop'和'gotoAndPlay'命令。

下面的代码是第一个场景编码,还有一个按钮。按下按钮,它将进入场景二。


import flash.events.MouseEvent;

stop();

GWbtn.addEventListener(MouseEvent.CLICK, China);
function China(e:MouseEvent):void{
    gotoAndPlay(1, 'Scene 2');
}

在场景二中,我在对象的时间轴中创建了一个经典的补间,我在编码中包含了stop()命令,如下所示。当ctrl进入时,补间功能不起作用。

import flash.events.Event;
import flash.events.MouseEvent;

stop();

nextbtn1.addEventListener(MouseEvent.CLICK, next1);
function next1(event:MouseEvent):void{
    gotoAndPlay(17);
}

我希望我的对象的输出与经典补间和stop()命令一起移动。

答案

问题在于场景2帧1具有停止();在你的代码中。这样做是为了停止第16帧上的补间:

import flash.events.Event;
import flash.events.MouseEvent;

//stop(); //remove this line

addEventListener(Event.ENTER_FRAME, checkFrame);
function checkFrame(event:Event):void {
    if (currentFrame == 16) {
        removeEventListener(Event.ENTER_FRAME, checkFrame);
        stop();
    }
}

nextbtn1.addEventListener(MouseEvent.CLICK, next1);
function next1(event:MouseEvent):void{
    nextbtn1.removeEventListener(MouseEvent.CLICK, next1);  //also kindly add this, its good practice
    removeEventListener(Event.ENTER_FRAME, checkFrame);
    gotoAndPlay(17);
}

以上是关于当传统补间在第一秒没有使用stop()时如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

在flash如何制作一个的鼠标跟随特效

如何在使用 pop 时重新加载或调用一些函数 initState()

第一次做的补间动画,总结过程

如何在按钮按下时通过动画进行文本转换?

当第一次调用 stop() 方法时,计步器插件会出错

在Vue中使用GSAP完成动画(三)动画事件