почему я получаю 1136: неверное количество аргументов. Ожидаемый 0 - PullRequest
0 голосов
/ 17 мая 2018

Начало проблемы: я постоянно получаю сообщение об ошибке 1136 при переменном таймере: Таймер = новый таймер (10000,1) ;. Я не уверен, что это ошибка компьютера или что. Я знаю, что вы поставили (задержка, а затем временной интервал) для таймера, но он все равно выдает мне сообщение об ошибке.

обновление: я загрузил весь код из исходного поста, чтобы посмотреть, не может ли кто-нибудь найти какие-либо ошибки. Мои таймеры должны быть правильными, но я все еще получаю ошибку 1136 в моей программе, и она даже не запускается. Когда я убираю таймеры, код работает отлично. Есть ли другой способ. реализовать таймер, чтобы остановить игру и сказать, что игра окончена?

package  {

import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.text.*; 

public class Duckhunt extends MovieClip 
{
    private var player1:Player;
    private var counter:Number;
    private var points:Number;
    private var cursor:Cursor;
    private var duckArmy:Vector.<Duck1>;
    private var duckArmy2:Vector.<Duck2>;
    private var duckCounter:Number;
    private var duckCounter2:Number;
    private var count:Number=10;
    private var timer:Timer;
    //var countDownDec:Number=1;
    //private var myTimer:Timer=new Timer(0,count);


    public function Duckhunt() 
    {
        //# constructor code

        // creates a new five-second Timer 
        var timer:Timer=new Timer(10000,1);

        //add event listner to timer
        timer.start();

        //starts the timer
        //myTimer.start();

        player1=new Player();
        player1.x = 375; player1.y = 400; addChild(player1);

        //cursor crosshair
        cursor= new Cursor();
        cursor.x = 400; cursor.y = 200; addChild(cursor);

        //add enemy
        duckArmy=new Vector.<Duck1>();

        for(var i:Number = 0; i < 30; i++)  
        {
            var duck:Duck1 = new Duck1(400,0);
            duckArmy.push(duck);
            duck.y = 450;
            stage.addChild(duck);
            duck.gotoAndPlay("fly");
            duck.addEventListener(MouseEvent.CLICK, hitEnemy);

        }//end duck1 army

        //add second second enemy
        duckArmy2=new Vector.<Duck2>();

        for(var j:Number=0;j<30;j++)
        {
            var duck2:Duck2 = new Duck2(0,400);
            duckArmy2.push(duck2);
            duck2.x = -900;
            stage.addChild(duck2);
            duck2.gotoAndPlay("fly");
            duck2.addEventListener(MouseEvent.CLICK, hitEnemy);
        }//end duck2 army

        duckCounter = duckCounter2 =counter = points = 0;
        addEventListener(Event.ENTER_FRAME, frameMovement);

    }//end constructor


}//end class


}//end package

1 Ответ

0 голосов
/ 17 мая 2018

Если вы объявили свой :Timer объект как общедоступную или личную переменную:

private var timer:Timer;

Нет необходимости объявлять еще одну новую переменную(с тем же именем) в более поздних функциях;

var timer:Timer=new Timer(10000,1); //creates a new 2nd var.. causes error..
timer.start();

Должно быть:

timer = new Timer (10000,1); //uses existing private var
timer.start();

Также обратите внимание:

Это timer переменная name слишком похоже на имя Timer datatype , подумайте об изменении написания имени, чтобы избежать "столкновения" со встроенными именами системы.Никогда не делайте var int :int = 0;.

Попробуйте назвать как _timer :Timer; или даже myTimer :Timer;

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