在我的时间轴的第一帧,我有以下动作脚本:
stop();
ClickTAG.addEventListener(MouseEvent.ROLL_OVER, manageMouseOver, false, 0, true);
function manageMouseOver(event:MouseEvent):void
{
play();
}
我对AS并不熟悉,但这可以实现我想要的,即在mouseOver上启动时间轴。但是,如果您稍后重复mouseOver和关闭swf,这可能会在时间轴中稍后中断动画,例如,它将跳过时间轴延迟并在最后一帧之后重新启动电影。
如何在影片到达第二帧后删除此侦听器或阻止其运行?我对AS不太了解,所以感谢你的帮助。
答案 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();
}