评分系统无法运行AS3

时间:2015-09-29 01:01:34

标签: actionscript-3

又是我了,我终于让数学生成器工作,看看答案是否正确或不正确,万岁!但是,这是编程,并且出现了另一个错误,darn-it。

所以我添加了一个评分系统,在第一个正确的答案中它给了我1分,但在第二个正确的答案它没有给我另一个点,它保持在1点。此外,有没有办法阻止verificar按钮,直到按下startButton按钮? (所以试试我的数学生成器的人不要作弊!)非常感谢你的帮助!

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

stop()

var reloj:Timer = new Timer(1000,60);
startButton.addEventListener(MouseEvent.CLICK, startTimer);
reloj.addEventListener(TimerEvent.TIMER, moveHand);
reloj.addEventListener(TimerEvent.TIMER_COMPLETE, endTimer);

function startTimer(e:MouseEvent):void {
    reloj.start();
    startButton.visible = false;
}

function moveHand(e:TimerEvent):void {
    segundero.rotation = segundero.rotation + 6
}

function endTimer(e:TimerEvent):void {
    trace("Se agotó el tiempo");
    gotoAndPlay (1, "1");
}

nuevo.addEventListener(MouseEvent.CLICK, generarPregunta);

function generarPregunta(MouseEvent):void {
    var random1:Number = Math.floor(Math.random()*25)
    var random2:Number = Math.floor(Math.random()*25)
    var array:Array = new Array ("+","-","*","/")
    var randomIndex:int = Math.floor (Math.random()*4)
    SimbMat.text = array [ randomIndex ]
    numI.text = random1 + ""
    numD.text = random2 + ""
}

verificar.addEventListener(MouseEvent.CLICK, verificarRespuesta);

function verificarRespuesta(MouseEvent):void {
    var puntaje:int = 0
    if (String(SimbMat.text) == "+") {
        if (Number(numI.text) + Number(numD.text) == Number(imput.text)) {
                trace("correcto")
                puntaje++;
                updateScore();
                generarPregunta(MouseEvent);
        } else {
            trace("incorrecto")
        }
    } else if (String(SimbMat.text) == "-") {
        if (Number(numI.text) - Number(numD.text) == Number(imput.text)) {
            trace("correcto")
            puntaje++;
            updateScore();
            generarPregunta(MouseEvent);
        }
        else {
            trace("incorrecto")
        }
    } else if (String(SimbMat.text) == "*") {
        if (Number(numI.text) * Number(numD.text) == Number(imput.text)) {
            trace("correcto")
            puntaje++;
            updateScore();
            generarPregunta(MouseEvent);
        } else {
            trace("incorrecto")
        }
    } else if (String(SimbMat.text) == "/") {
        if (Number(numI.text) / Number(numD.text) == Number(imput.text)) {
            trace("correcto")
            puntaje++;
            updateScore();
            generarPregunta(MouseEvent);
        } else {
            trace("incorrecto")
        }
    }

    function updateScore() :void {
        score.text = "Puntaje: " + puntaje;
    }

}

1 个答案:

答案 0 :(得分:0)

  

但是在第二个正确答案中,它没有给我另一个观点,它   保持在1点。

现在,puntaje每次都重置为零。 你应该在verificarRespuesta函数之外定义puntaje(总点数?)。

var puntaje:int;

function startTimer(e:MouseEvent):void {
    reloj.start();

    // reset to zero here?
    puntaje = 0;

    startButton.visible = false;
}
  

另外,有没有办法阻止verificar按钮,直到   按下startButton按钮?

首先设置enable=falsevisible=false,并在startTimer或generarPregunta函数内部设置为true。像这样。

// set enable=false first
verificar.enable = false;

function generarPregunta(MouseEvent):void {
    var random1:Number = Math.floor(Math.random()*25);
    var random2:Number = Math.floor(Math.random()*25);
    var array:Array = new Array ("+","-","*","/");
    var randomIndex:int = Math.floor (Math.random()*4);
    SimbMat.text = array [ randomIndex ];
    numI.text = random1 + "";
    numD.text = random2 + "";

    verificar.enable = true;
}