当经典补间在第一秒不使用stop()时如何解决?

时间:2019-04-02 17:31:33

标签: actionscript-3 actionscript

在使用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()命令来移动对象的输出。

1 个答案:

答案 0 :(得分:1)

问题在于场景2的第1帧具有stop();在您的代码中。这样做可以停止第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);
}