Actionscript 3 AS3鼠标悬停

Actionscript 3 AS3鼠标悬停,actionscript-3,mouseevent,mouseover,Actionscript 3,Mouseevent,Mouseover,我在舞台上有很多按钮。它们都是在第一帧和第二帧上具有开和关状态的电影唇。问题是,当您将鼠标快速移到按钮上时,有时它会卡在over状态。我有什么遗漏吗 public class SimpleRollOverButton extends MovieClip { private var _selected:Boolean; public function SimpleRollOverButton() { // EVENTS this.addEv

我在舞台上有很多按钮。它们都是在第一帧和第二帧上具有开和关状态的电影唇。问题是,当您将鼠标快速移到按钮上时,有时它会卡在over状态。我有什么遗漏吗

public class SimpleRollOverButton extends MovieClip
{
    private var _selected:Boolean;

    public function SimpleRollOverButton()
    {
        // EVENTS
        this.addEventListener(MouseEvent.CLICK, onClick, false, 0, true);
        this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
        this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);

        enable();


    }
    //
    // PUblic functions
    //
    public function enable():void
    {

        this.selected = false;
        this.gotoAndStop(1);
        this.mouseEnabled = this.mouseChildren = true;
        this.buttonMode = true;


    }
    public function disable():void
    {   

        this.mouseEnabled = this.mouseChildren = false;
        this.buttonMode = false;
    }
    public function onState():void
    {
        this.disable();
        this.selected = true;

        this.gotoAndStop(2);

    }
    public function offState():void
    {
        this.enable();
    }

    //
    // Private Functions
    //
    protected function onClick(e:MouseEvent):void
    {
        onState();
    }
    protected function onMouseOver(e:MouseEvent):void
    {
        this.gotoAndStop(2);
    }
    protected function onMouseOut(e:MouseEvent):void
    {
        this.gotoAndStop(1);    
    }

    //
    // ACCESSORS
    //
    public function get selected():Boolean
    {
        return _selected;
    }

    public function set selected(value:Boolean):void
    {
        _selected = value;
    }


}

您可以将侦听器添加到舞台或MovieClip,如果有背景且不透明,则其中包含按钮:

stage.addEventListener(MouseEvent.ROLL_OVER, turnThemOff); 
function turnThemOff(evt:MouseEvent):void {
    for (var i:int=0; i<yourButtons.length; i++) yourButtons[i].gotoAndStop(1);
}

谢谢你的回复。对于这个答案,我遇到的问题是,有许多其他加载的资产上也有事件侦听器。如果舞台上只有这些按钮,这将是实现这一目标的绝佳方式。你知道为什么老鼠不开枪吗?我是否应该在需要时删除并添加滚动和滚动侦听器?只有当鼠标移动得非常快时才会发生这种情况?尝试增加帧率。看看它是否发生在帧速率约为50fps的情况下。
stage.addEventListener(Event.MOUSE_LEAVE, turnThemOff);