为什么我的计时器和分数计数不起作用?

Why are my timer and score count not working?

我正在尝试使用动作脚本 3 创建游戏,但不明白为什么以下代码会导致我的分数立即重置为 0 并且我的计时器会快速改变数字但模式不一致?任何帮助深表感谢!谢谢!

import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;

var score:int=0;
var nCount:Number = 5;
var myTimer:Timer = new Timer(3000, nCount);
timer_txt.text = nCount.toString();

myTimer.addEventListener(TimerEvent.TIMER, countdown);
myTimer.start();

function countdown(e:TimerEvent):void{
    nCount--;
    timer_txt.text = nCount.toString();
}
init();
function init(): void {
    Mouse.hide();
    addEventListener(Event.ENTER_FRAME, update);
    addEventListener(MouseEvent.CLICK, checkIfHit);
}

function update(myEvent:Event):void{
    aim_mc.x = this.mouseX;
    aim_mc.y = this.mouseY;
    score_txt.text = "Score: " + score;
}

function checkIfHit(e:MouseEvent):void{
    for(var i:int = 1; i < 4;++i){
        var myClip:MovieClip = MovieClip(getChildByName("duck" + i));
        if (myClip.hitTestPoint(mouseX,mouseY,true)){
            score = score + 1;

        }
    }
}

正如@coner 在他的评论中提到的,我认为您还有另一个帧,也许是您错误添加的,这就是为什么您的动画每次都被初始化的原因:

为避免这种情况,如果您出于任何原因需要那个框架(这些框架),您可以在第一个框架中添加 stop(),然后您可以使用 gotoAndStop()gotoAndPlay() 在另一个时间更改框架,或者如果您不需要那个框架并且您错误地添加了它,您只需将其删除。

此外,不要忘记删除事件监听器并在倒计时结束后停止游戏...

希望能帮到你。