我在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.
你知道我怎么纠正吗?
非常感谢,
答案 0 :(得分:0)
方法removeEventListener只有三个参数:
function removeEventListener(type:String,listener:Function,useCapture:Boolean = false):void
以下列方式调整代码应该足够了:
cocoUn.removeEventListener(MouseEvent.CLICK, shoot);