0

を削除したい関数がありEventListenerますが、次のエラーが表示されます。

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が、それでもうまくいきません。

私は何を間違っていますか?

4

1 に答える 1

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);    
}
于 2013-07-31T18:11:48.223 に答える