2016-05-01 9 views
1

Hallo ich bin sehr neu zu Adobe Flash und habe ein Projekt für meine Computerklasse gemacht, ich mache ein Spiel, wo 2 zufällig generierte Zahlen angezeigt werden und der Benutzer muss Geben Sie den Wert ein und erhalten Sie 10 Punkte, wenn die Antwort richtig ist. Ich habe jedoch Schwierigkeiten, das Eingabetextfeld zu erhalten, um mir 10 Punkte zu geben, wenn die Antwort richtig ist, denn im Augenblick erhalte ich nur Punkte, wenn die 2 erzeugten Zahlen eine Summe von 0 haben. Würde die Hilfe wirklich schätzen, viele Vielen Dank. Ich lege den Code unterflash AS6- So überprüfen Sie die richtige Antwort im Eingabefeld

public class Main extends MovieClip { 
    var Num1:int ; 
    var Num2:int ; 
    var Answer:int ; 
    var Score:int=0; 
    var UserInput; 



    public function Main() 
    { 
     // constructor code 
     gotoAndStop(1); 
     Start.addEventListener(MouseEvent.CLICK, StartFunct); 

    } 

    function StartFunct(e:Event) 
     { 
      gotoAndStop(2); 
      button.addEventListener(MouseEvent.CLICK,clickhandler); 
      button.addEventListener(MouseEvent.CLICK,clickhandler2); 
      button.addEventListener(MouseEvent.CLICK,checkFunction); 
     } 

    function checkFunction(event:MouseEvent):void 
    { 
     Answer= Num1*Num2; 
     if(UserInput == Answer){ 
      Score=Score+10 

     } 
     else Score=Score 

    } 


    function clickhandler(event:MouseEvent):void 
    { 
     Num1 = Math.floor(Math.random()*10); 
     Num2 = Math.floor(Math.random()*10); 

     num1Box.text = String(Num1); 
     num2Box.text = String(Num2); 
     UserInput = ""; 

    } 
    function clickhandler2(event:MouseEvent):void 
    { 
     Score = Score; 

     ScoreBox.text = String(Score); 
+1

ist 'UserInput' von ** String ** Typ? Warum sagst du dem Computer nicht einfach, was du meinst? 'Var UserInput: String =" ";' ... Wie auch immer ich denke, dein Problem ist die ** If ** Anweisung in 'checkFunction':' if (int (UserInput) == Beantworten Sie) 'dies weist den Computer an, diese Textzeichenfolge als Ganzzahl zu betrachten (zB: Casting als Integer) –

Antwort

2

Es sieht für mich so aus, dass dies ein Bestellproblem ist. Sie haben drei separate Click-Ereignisse, die gleichzeitig ausgelöst werden. Der ideale Weg, dies zu tun, besteht darin, eine einzige Click-Handler-Funktion zu erstellen und Ihre drei anderen Funktionen genau in der gewünschten Reihenfolge einzukapseln.

Statt function StartFunct(e:Event) { gotoAndStop(2); button.addEventListener(MouseEvent.CLICK,clickhandler); button.addEventListener(MouseEvent.CLICK,clickhandler2); button.addEventListener(MouseEvent.CLICK,checkFunction); }

Probieren Sie es ähnliche tun

 function StartFunct(e:Event) 
     { 
      gotoAndStop(2); 
      button.addEventListener(MouseEvent.CLICK,clickHandler); 
     } 

function clickHandler(evnt:Event){ 
function1(); //generate the numbers 
function2(); evaluate the numbers and adjust the score 
function3(); //adjust score text box 
} 

` Beachten Sie, dass diese Sie tun erfordert die Parameter für Ihre Aktion Funktionen zu entfernen. Sie können auch einfach versuchen, die Art und Weise neu zu ordnen, in der Sie Ihre ursprüngliche onClick-Ereignislistener

Verwandte Themen