1

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

stop();

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

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

我不太熟悉 AS,但这完成了我想要的,即在 mouseOver 上启动时间线。但是,如果您稍后反复将鼠标悬停和关闭 swf,这可能会在时间轴稍后中断动画,例如,它将跳过时间轴延迟并在最后一帧之后重新开始电影。

如何在电影到达第二帧后删除此侦听器或阻止它运行?我对AS的基本了解较少,所以感谢您的帮助。

4

3 回答 3

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

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

于 2012-10-23T15:00:37.243 回答
1

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

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

   play(); 
}

有关更多详细信息arguments.callee 文档

于 2012-10-25T06:17:49.107 回答
1

在您的情况下从对象本身中删除侦听器:

stop();

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

function manageMouseOver(event:MouseEvent):void
{   
    ClickTAG.removeEventListener(MouseEvent.ROLL_OVER, manageMouseOver)
    play();
}
于 2015-07-11T23:52:15.200 回答