0

我一直在编写一个非常基本的游戏的开头,但我碰壁了。当我编译我的代码时,游戏会运行但会出现运行时错误:

ArgumentError:错误 #1063:block() 上的参数计数不匹配。预期 2,得到 0。
在 flash.display::Sprite/constructChildren()
在 flash display::Sprite()
在 flash.display::MovieClip()
在 AvoiderGame()。

这是我的文档类,标题为AvoiderGame

package
{
    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class AvoiderGame extends MovieClip
    {

        public var avatar1:avatar;
        public var gameTimer:Timer;
        public var army:Array;

        public function AvoiderGame()
        {
            army=new Array();
            var newblock= new block(100,-15);
            army.push(newblock);
            addChild(newblock);

            avatar1=new avatar();
            addChild (avatar1);
            avatar1.x=mouseX;
            avatar1.y=mouseY;

            gameTimer=new Timer(25);
            gameTimer.addEventListener(TimerEvent.TIMER, onTick);
            gameTimer.start();

        }


        public function onTick(timerEvent:TimerEvent):void
        {
            if ( Math.random() < 0.1 )
            {
                var randomX:Number = Math.random() * 400;
                var newblock:block = new block( randomX, -15 );

                army.push( newblock );
                addChild( newblock );
            }

            avatar1.x = mouseX;
            avatar1.y = mouseY;

            for each (var block1:block in army)
            {
                block1.moveDownaBit();

                if (avatar1.hitTestObject(block1))
                {
                    gameTimer.stop();
                }
            }
        }
    }
}

最后这是我的block类,它似乎具有导致错误的构造函数。

package 
{
    import flash.display.MovieClip;

    public class block extends MovieClip
    {
        public var block1:block;

        public function block(startX:Number, startY:Number)
        {
            x=startX;
            y=startY;
        }

        public function moveDownaBit():void
        {
            y=y+3;
        }
    }
}

我想要开始工作的只是一系列在舞台上随机生成的敌人并在没有头像图标击中的情况下倒下。我会很感激我能得到的任何帮助。

4

1 回答 1

0

听起来您block在舞台上有一个 的实例,所以 Flash 正在创建它而没有传递startXand startY。您可以删除任何预先放置的块,或者只是将默认值添加到构造函数:

public function block(startX:Number = 0,startY:Number = 0)
{
    x = startX;
    y = startY;
}
于 2013-01-20T21:34:41.243 回答