as3 - 构造函数错误

时间:2014-01-22 16:51:11

标签: actionscript-3 flash constructor

我(给我)一个奇怪的错误。据我所知,我正在做的一切都是正确的,但我不断收到错误。

  

ArgumentError:错误#1063:Enemy()上的参数计数不匹配。   预计2,得到0。

正如您所看到的,在初始化我的类Enemy时,它需要两个参数并获得一个。但是,据我所知,事实并非如此。

在哪里召唤。

function startHandle(evt:MouseEvent):void{
  enemy = new Enemy(1090, 189);
  gotoAndStop(2);
  Player.stop();
  currentLevel = 1;
}

然后是敌人类

public function Enemy(xLocation:int, yLocation:int){
        trace(xLocation);
        trace(yLocation);
        // constructor code
        x = xLocation;
        y = yLocation;
        trace(x);
        trace(y);
}

我从中得到的输出如下。

  

1090

     

189

     

1090

     

189

     

ArgumentError:错误#1063:参数计数不匹配   敌人()。预计2,得到0。

     

在flash.display :: MovieClip / gotoAndStop()

     

在   Project_fla :: MainTimeline / startHandle()

据我所知,它获取了两个值,知道它有它们,设置它们。但仍然会出错。有人有想法吗?

1 个答案:

答案 0 :(得分:2)

你最有可能在一些框架上预先安置了敌人。由于任何DisplayObject后代的默认构造函数都需要0个参数,因此在Flash GUI中创建的任何内容都会使Flash编译器使用0参数进行构造函数调用。为了避免这种情况(发现引起你的那个讨厌的敌人)给出构造函数的默认值,如下所示:

public function Enemy(xLocation:int=0, yLocation:int=0){

观察敌人何时出现在(0,0),调试该点并消除任何不需要的敌人实例的创建。