开发者

How do I get button up even when out of focus with actionscript 3.0?

开发者 https://www.devze.com 2023-01-09 09:55 出处:网络
I\'ve been working on creating a button using a MovieClip. I\'m using the following events: this.addEventListener(MouseEvent.CLI开发者_如何学PythonCK,OnClick);

I've been working on creating a button using a MovieClip. I'm using the following events:

 this.addEventListener(MouseEvent.CLI开发者_如何学PythonCK,OnClick);
 this.addEventListener(MouseEvent.ROLL_OVER,OnButtonRollOver);
 this.addEventListener(MouseEvent.ROLL_OUT,OnButtonRollOut);
 this.addEventListener(MouseEvent.MOUSE_DOWN,OnMouseDown);
 this.addEventListener(MouseEvent.MOUSE_UP,OnMouseUp);

Everything works fine with the exception of when I click the button and [without releasing the mouse button] I drag the mouse out of the button's focus and then I release the mouse button the OnMouseUp event is not called.

How can I fix this? Thanks, Y_Y.


Inside your OnMouseDown handler you can add the following to ensure you get the MouseEvent.MOUSE_UP event you desire:

private function OnMouseDown(e:MouseEvent):void
{
    stage.addEventListener(MouseEvent.MOUSE_UP, onStageMouseUp);
}

private function onStageMouseUp(e:MouseEvent):void
{
    stage.removeEventListener(MouseEvent.MOUSE_UP, onStageMouseUp);
    // handle mouse up here
}

Of course this means you'll have to do some extra work to make sure handlers are being added/removed appropriately. You might also want to cache a reference to the target button in your OnMouseDown handler in the event the scenario you describe occurs and you still need to know which button was pressed (assuming your handlers are outside the scope of the button itself).

0

精彩评论

暂无评论...
验证码 换一张
取 消