如何使一个flash 3.0脚本在MOUSE_OVER(或ROLL_OVER)上播放一次然后每个这样的事件播放一次?

时间:2013-12-29 10:20:57

标签: actionscript-3 flash

我是一个新手试图为我的网站做一些按钮。我有flash 3.0的动作脚本:

this.home.addEventListener(MouseEvent.ROLL_OVER, function(e:MouseEvent): void{

    play();

});

stop();

它有效,闪光灯连续播放,但是当鼠标悬停在按钮上时,我想让它一直播放。 结束帧中的stop();不起作用,它会阻止闪光灯在鼠标悬停时再次播放。试过ROLL_OVERMOUSE_OVER,没有运气。 必须有一个简单的技巧,但还没有达到目的。

3 个答案:

答案 0 :(得分:0)

您需要在第一次触发后删除事件侦听器。所以:

this.home.addEventListener(MouseEvent.ROLL_OVER, function(e:MouseEvent): void{

    this.home.removeEventListener(MouseEvent.ROLL_OVER, arguments.callee);
    play();

});

答案 1 :(得分:0)

看来这段代码有效,我的运气好了!

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

 function manageMouseOut(event:MouseEvent):void{
  home.removeEventListener(MouseEvent.ROLL_OVER, manageMouseOver);
  home.addEventListener(MouseEvent.ROLL_OVER, manageMouseOver, false, 0, true);
  play();
}

function manageMouseOver(event:MouseEvent):void{
  home.removeEventListener(MouseEvent.ROLL_OVER, manageMouseOut);
  home.addEventListener(MouseEvent.ROLL_OVER, manageMouseOut, false, 0, true);
  stop();
}

它做了我需要的东西,在鼠标悬停时播放一次。 呼!

答案 2 :(得分:0)

经过一些格式化后,我得到了这个:

stop()

home.addEventListener(MouseEvent.MOUSE_OVER, manageMouseOver, false, 0, true);
function manageMouseOut(event:MouseEvent):void{
  play();
}
function manageMouseOver(event:MouseEvent):void{
home.addEventListener(MouseEvent.MOUSE_OVER, manageMouseOut, false, 0, true);
  stop();
}

很好用。 有2层,62帧(第1层)。 'home'是按钮名称。