2013-07-31 144 views
0

我有,我想删除EventListener的功能,但它给了我下面的错误:删除事件侦听器3

Access of undefined property event 

这里是有问题的代码:

dr_line.addEventListener(MouseEvent.CLICK,drawln); 
var test:Boolean; 

function drawln(e:MouseEvent):void{ 
    event.currentTarget.removeEventListener(MouseEvent.CLICK, drawln); 
    stage.addEventListener(MouseEvent.CLICK,click1);  
} 

var sx,sy,fx,fy,j:int; 

function click1(e:MouseEvent):void{ 
    sx=mouseX; 
    sy=mouseY; 
    stage.addEventListener(MouseEvent.CLICK,click2); 
} 

function click2(e:MouseEvent):void{ 
    var i:int; 
    i=1; 
    trace(i); 
    fx=mouseX; 
    fy=mouseY; 
    var line:Shape = new Shape(); 
    line.graphics.beginFill(0x00FF00); 
    line.graphics.moveTo(sx,sy); 
    line.graphics.lineTo(fx,fy); 
    this.addChild(line); 
} 

我试着去除click1click2中的事件监听器,但它仍然没有工作。

我在做什么错?

回答

2

事件未被声明; e是。尝试改变这一点:

function drawln(e:MouseEvent):void{ 
    event.currentTarget.removeEventListener(MouseEvent.CLICK, drawln); 
    stage.addEventListener(MouseEvent.CLICK,click1);  
} 

这样:

function drawln(e:MouseEvent):void{ 
    e.currentTarget.removeEventListener(MouseEvent.CLICK, drawln); 
    stage.addEventListener(MouseEvent.CLICK,click1);  
} 

甚至可能是这样的:

function drawln(e:MouseEvent):void{ 
    dr_line.removeEventListener(MouseEvent.CLICK, drawln); 
    stage.addEventListener(MouseEvent.CLICK,click1);  
}