如何删除eventListener,AS3

时间:2012-10-23 14:57:57

标签: actionscript-3 event-listener

在我的时间轴的第一帧,我有以下动作脚本:

stop();

ClickTAG.addEventListener(MouseEvent.ROLL_OVER, manageMouseOver, false, 0, true);   

function manageMouseOver(event:MouseEvent):void
{   
    play(); 
}

我对AS并不熟悉,但这可以实现我想要的,即在mouseOver上启动时间轴。但是,如果您稍后重复mouseOver和关闭swf,这可能会在时间轴中稍后中断动画,例如,它将跳过时间轴延迟并在最后一帧之后重新启动电影。

如何在影片到达第二帧后删除此侦听器或阻止其运行?我对AS不太了解,所以感谢你的帮助。

3 个答案:

答案 0 :(得分:1)

function manageMouseOver(event:MouseEvent):void{   
     event.currentTarget.removeEventListener(event.type, manageMouseOver);
     play(); 
}

这个简单的代码能够在被调用之后立即删除它。

答案 1 :(得分:1)

在AS3中删除事件侦听器的便捷方法

function manageMouseOver(event:MouseEvent):void
{
    event.currentTarget.removeEventListener(event.type, arguments.callee);

   play(); 
}

有关详细信息arguments.callee docs

答案 2 :(得分:1)

在您的案例中从对象本身中删除侦听器:

stop();

ClickTAG.addEventListener(MouseEvent.ROLL_OVER, manageMouseOver, false, 0, true);   

function manageMouseOver(event:MouseEvent):void
{   
    ClickTAG.removeEventListener(MouseEvent.ROLL_OVER, manageMouseOver)
    play();
}