Actionscript 3 AS3鼠标悬停
我在舞台上有很多按钮。它们都是在第一帧和第二帧上具有开和关状态的电影唇。问题是,当您将鼠标快速移到按钮上时,有时它会卡在over状态。我有什么遗漏吗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
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);