我有一个弹出窗口,我想在鼠标外部点击它关闭它。所以我做了一个事件的监听者 MouseDownOutside
。但它只听左键点击。我也想关闭它右键单击,但如果我右键单击弹出窗口,则应该打开它。我在谷歌搜索,但第二次它没有任何解决方案。有人知道关闭弹出窗口的方法吗?
所以创建弹出窗口的代码看起来像
var myPopUp:CustomComponentClass = new CustomComponentClass();
PopUpManager.addPopUp(myPopUp, Parent, true);
PopUpManager.centerPopUp(myPopUp);
关闭弹出窗口
PopUpManager.removePopUp(myPopUp);
提前致谢
答案 0 :(得分:1)
我会尝试这样的事情:
stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN,onRightMouseDown);
function onRightMouseDown(e:MouseEvent):void
{
var point:Point = popup.globalToLocal(new Point(stage.mouseX,stage.mouseY));
if(!pointInside(popup,point))
{
PopUpManager.removePopUp(popup);
}
}
pointInside函数只检查点是否在弹出窗口的矩形内。
public function pointInside(obj:DisplayObject, point:Point):Boolean
{
return (point.x >= 0 && point.y >= 0 && point.x <= obj.width && point.y <= obj.height);
}