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

时间:2015-11-24 09:18:01

标签: actionscript-3 flash

我正在尝试使用动作脚本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;

        }
    }
}

1 个答案:

答案 0 :(得分:2)

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

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

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

希望可以提供帮助。