使用removeEventListener时出错#1063

时间:2014-01-06 09:59:58

标签: actionscript-3

我在AS3制作游戏。

我的主要课程中有这个功能:

public function tire(e:MouseEvent):void{
                puzzle.removeListeners();
        }

在我的Puzzle课程中:

 public function removeListeners():void{
        var cocoUn;
        var cocoDeux;
            var cocoTrois;
            var cocoQuatre;
        var cocoCinq;
  for (var i in Engine.usableItems){ // Ditto
            if (Engine.usableItems[i].displayName == "COCOUN")
            cocoUn = Engine.usableItems[i];
            if (Engine.usableItems[i].displayName == "COCODEUX")
            cocoDeux = Engine.usableItems[i];
            if (Engine.usableItems[i].displayName == "COCOTROIS")
            cocoTrois = Engine.usableItems[i];
            if (Engine.usableItems[i].displayName == "COCOQUATRE")
                cocoQuatre = Engine.usableItems[i];
            if (Engine.usableItems[i].displayName == "COCOCINQ")
                cocoCinq = Engine.usableItems[i];
                    }

        cocoUn.removeEventListener(MouseEvent.CLICK, shoot, false, 0, true);
        cocoDeux.removeEventListener(MouseEvent.CLICK, shootDeux, false, 0, true);
    cocoTrois.removeEventListener(MouseEvent.CLICK, shootTrois, false, 0, true);
    cocoQuatre.removeEventListener(MouseEvent.CLICK, shootQuatre, false, 0, true);
    cocoCinq.removeEventListener(MouseEvent.CLICK, shootCinq, false, 0, true);

      }

当我的主课程中调用“轮胎”功能时,我希望我的5个项目不可点击。

我在调试模式下出错了。 当我点击舞台时,会出现此错误:Error #1063: Argument count mismatch on flash.events::EventDispatcher/removeEventListener(). Expected 2, got 5.

你知道我怎么纠正吗?

非常感谢,

1 个答案:

答案 0 :(得分:0)

方法removeEventListener只有三个参数:

function removeEventListener(type:String,listener:Function,useCapture:Boolean = false):void

以下列方式调整代码应该足够了:

cocoUn.removeEventListener(MouseEvent.CLICK, shoot);