2013-07-31 6 views
0

У меня есть функция, в которой я хочу, чтобы удалить EventListener, но это дает мне следующую ошибку:Удаление EventListeners в Actionscript 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); 
} 

Я попытался сделать то же удаление прослушивателя событий в click1 и click2, но он все еще не работает.

Что я делаю неправильно?

ответ

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);  
} 
Смежные вопросы