如果条件,如何把计时器?

时间:2015-11-24 14:12:10

标签: actionscript-3 flash

首先,这不是我编写的新代码 这是我编辑的代码,我希望我的火箭下降并保持1秒,直到午餐。我在火箭上做了一个动画,以便在24帧下降。

这段代码因为动画导致我的火箭掉落,但是当它掉落时它会移动。

public class RocketMss extends MovieClip {

    var rocketSpeed:Number;
    var rocketTimer:Timer;
    var timing:Number;

     function RocketMss() {

        timing = 0;
        rocketSpeed = 12;
        addEventListener("enterFrame", enterFrame);
    }

    function enterFrame(e:Event){

        rocketTimer = new Timer(100);
        timing = 1;
        if(timing == 1){
            this.x += rocketSpeed;
            timing = 0;
            if((this.currentFrame == this.totalFrames) && this.x > 640){
                removeEventListener("enterFrame", enterFrame);
                stage.removeChild(this);
            }
        }


    }
谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

您可以使用TimersetTimeout延迟输入框架的开始。例如:

function RocketMss() {
    setTimeout(startMoving, 1000);
}

function startMoving():void {
    addEventListener(Event.ENTER_FRAME, enterFrame);
}

function enterFrame(e:Event):void {
    this.x += rocketSpeed;
    if(this.x > 640){
        removeEventListener(Event.ENTER_FRAME, enterFrame);
        stage.removeChild(this);
    }
}

另一种方法是在“drop”动画完成后从一帧中调用时间轴中的startMoving函数。

另一种方法是依靠框架标签,并且在enterFrame处理程序中,您只需在移动之前检查currentLabel