无法将变量刷新为初始数字



我正在制作一个简单的游戏,它运行良好,但现在唯一的问题是我的时间值(var nummer:Number=300:)当我完成或失败游戏时,我不会重置为300。

import flash.utils.Timer;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.TimerEvent;

var femMinutter:Timer = new Timer(1000, 300);
var tid:Timer = new Timer(5000);
var rightArrow:Boolean;
var leftArrow:Boolean;
var upArrow:Boolean;
var downArrow:Boolean;
var speed:int = 10;
var score:int = 0
var ferdig:MovieClip = new Sluttskjerm();
var startSpillet:MovieClip = new Startskjerm();
var feiletSpillet:MovieClip = new Feilskjerm();
var nummer:Number = 300;
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.removeEventListener(Event.ENTER_FRAME, everyFrame);
femMinutter.addEventListener(TimerEvent.TIMER, tellNed);
tid.addEventListener(TimerEvent.TIMER, flyttRandom);
knpStart.addEventListener(MouseEvent.CLICK, startSpill);
addChild(startSpillet);
startSpillet.x = 275;
startSpillet.y = 150;
troll.x = 500;
troll.y = 300;
meg.x = 100;
meg.y = 300;
function tellNed (evt:TimerEvent):void
{
txtTid.text = String((nummer)-femMinutter.currentCount);
if (txtTid.text == "0")
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.removeEventListener(Event.ENTER_FRAME, everyFrame);
troll.x = 500;
troll.y = 300;
meg.x = 100;
meg.y = 300;
addChild(feiletSpillet);
feiletSpillet.x = 275;
feiletSpillet.y = 150;
tid.stop();
femMinutter.stop();
nummer = 300;
}
}
function startSpill(event:MouseEvent):void
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(Event.ENTER_FRAME, everyFrame);
tid.start();
femMinutter.start();
if (contains(ferdig))
{
    removeChild(ferdig);
}
if (contains(startSpillet))
{
    removeChild(startSpillet);
}
if (contains(feiletSpillet))
{
    removeChild(feiletSpillet);
}
}
function flyttRandom (evt:TimerEvent):void
{
troll.x = Math.random() * (550 - 0) + 0;
troll.y = Math.random() * (350 - 0) + 0;
}
function keyPressed(event:KeyboardEvent):void 
{
if (event.keyCode == Keyboard.RIGHT)
{
    rightArrow = true;
}
if (event.keyCode == Keyboard.LEFT) 
{
    leftArrow = true;
}
if (event.keyCode == Keyboard.UP) 
{
    upArrow = true;
}
if (event.keyCode == Keyboard.DOWN) 
{
    downArrow = true;
}   
if (meg.hitTestObject(troll) == true)
{
    score = score+1;
    txtScore.text = score.toString();
    troll.x = Math.random() * (550 - 0) + 0;
    troll.y = Math.random() * (350 - 0) + 0;
    troll.scaleX = troll.scaleX * 0.9;
    troll.scaleY = troll.scaleX * 0.9;
    if (score == 2)
    {
        femMinutter.stop();
        tid.stop();
        stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
        stage.removeEventListener(KeyboardEvent.KEY_UP, keyReleased);
        stage.removeEventListener(Event.ENTER_FRAME, everyFrame);
        troll.x = 500;
        troll.y = 300;
        meg.x = 100;
        meg.y = 300;
        addChild(ferdig);
        ferdig.x = 275;
        ferdig.y = 150;
        score = 0;
        troll.height = 134;
        troll.width = 138;
        nummer = 300;
    }
}   
}
function keyReleased(event:KeyboardEvent):void 
{
if (event.keyCode == Keyboard.RIGHT) 
{
    rightArrow = false;
}
if (event.keyCode == Keyboard.LEFT) 
{
    leftArrow = false;
}
if (event.keyCode == Keyboard.UP) 
{
    upArrow = false;
}
if (event.keyCode == Keyboard.DOWN) 
{
    downArrow = false;
}
}
function everyFrame(event:Event):void 
{
if (rightArrow) 
{
    meg.x += speed;
}
if (leftArrow) 
{
    meg.x -= speed;
}
if (upArrow) 
{
    meg.y -= speed;
}
if (downArrow) 
{
    meg.y += speed;
}   
}

正如你所看到的,我在失败和获胜屏幕上都添加了"nummer=300;"。如果我在3秒内获胜,时钟会显示297,下一轮比赛从297开始,而不是最初的300。

精氨酸。。。。多余的代码让我的眼睛流血%-X

但是,你仍然没有重置你的计时器(femMinutter.reset())。这意味着

femMinutter.currentCount

即使在游戏结束后,也会不断增加。

最新更新