Ошибка 1136: неверное количество аргументов.Ожидаемый 1 - PullRequest
0 голосов
/ 18 января 2012
        //Handle game logic
        mcPlayer.update();
        //create question
        mcMathQu.update(); 

первая функция «обновления» внешнего файла работает, но экземпляр, который я добавил во 2-й внешний файл, выдает мне эту ошибку ... (есть третий, который тоже работает)

примечание: сам код является внешним как файл FLA-файла.(и я проверил, все правильно связано с их отдельным внешним файлом).

Это весь код функции.

package Game{
//Add in your import statements here
import flash.display.*;
import flash.events.*;
import flash.utils.*;

//...

public class Maths extends MovieClip
{
    //Add in your class variables here
    //private var score:Number;
    private var operand1:Number;
    private var operand2:Number;
    private var mathsign:String;
    private var rdmSign:int;
    private var startNewGame:Boolean; 
    //private var count:Number;
    //private var myTimer:Timer;
    //...
    /* add new var, and put it as random 4 different int, 
    than use it to SET mathsign as + - / x ...  
    dun forget the 60 sec timer. 
    and minus 10 sec if ans wrongly . 
    and 1 min only 30 questions . :D
    note : add in a end game menu + big big score :DDD 
    and a start game one also. 
    */
    public function MathsQuiz()
    {

    }

    public function Maths()
    {


        //score = 0; 
        operand1 = 0;
        operand2 = 0;
        startNewGame = true;
        //count = 60 ; 
        //myTimer = new Timer(1000,count);



        //Get the game loop to execute
        addEventListener(Event.ENTER_FRAME,update);
        stage.addEventListener(KeyboardEvent.KEY_DOWN, checkAnswer);
        //myTimer.addEventListener(TimerEvent.TIMER, ticktock);
        //myTimer.start();  


    }




   // private function ticktock(event:TimerEvent):void 
    //{
   //     txtCountdown.text = String((count)-myTimer.currentCount);
    //}

    private function checkAnswer(evt:KeyboardEvent) 
    {
        if (evt.keyCode == 13)
        {
            if (mathsign == "+" && txtResult.text == String(operand1 + operand2))
            {
                //score += 10;
            }
            else if (mathsign == "-" && txtResult.text == String(operand1 - operand2))
            {
                //score += 10;
            }
            else if (mathsign == "x" && txtResult.text == String(operand1 * operand2))
            {
                //score += 10;
            }
            else if (mathsign == "÷" && txtResult.text == String(operand1 / operand2))
            {
                //score += 10;
            }
            else
            {
                //score -=5;
                //count -=10;
            }
            startNewGame = true;
            txtResult.text = "";
        }

    }

    public function update(evt:Event)
    {

        //die
        //if (txtCountdown.text <= "0")
        //{
            //score = 0;
            //count = 60;
            //startNewGame = true;
        //}
        //random sign is random. 


      if(rdmSign == 1)
      {
           mathsign = "+";
      }
      else if(rdmSign == 2)
      {
           mathsign = "-";
      }
      else if(rdmSign == 3)
      {
           mathsign = "x";
      }
      else if(rdmSign == 4)
      {
           mathsign = "÷";
      }


        //Handle user input


        //Handle game logic
        if (startNewGame == true)
        {
            var max = 12;
            var min = 0;
            operand1 = Math.floor(Math.random()*(max-min+1))+min;
            operand2 = Math.floor(Math.random()*(max-min+1))+min;
            rdmSign = Math.floor(Math.random() *4 + 1);
            startNewGame = false;
        }
        //Handle display
        txtOperand1.text = String(operand1);
        txtOperand2.text = String(operand2);
        txtMathsign.text = String(mathsign);
        //txtScore.text = String(score);
    }       

}//end class    
    }//end package

1 Ответ

3 голосов
/ 18 января 2012

Если вы собираетесь вызывать update() без указания каких-либо параметров, просто установите для вашего первого параметра (evt) значение по умолчанию null:

public function update(evt:Event = null)

Просто будьтеосторожны при обновлении этого метода;если вы используете evt где-нибудь внутри, вы должны будете обязательно обернуть в if(evt != null) или подобное, например:

public function update(evt:Event = null):void
{
    if(evt != null)
    {
        trace(evt.target);
    }
}

В противном случае вы будете подвергнуты бомбардировке с некоторыми замечательными:

Ошибка типа: ошибка # 1009: невозможно получить доступ к свойству или методу ссылки на пустой объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...