1

我有一个弹出窗口,我想在鼠标外部单击时将其关闭。所以我做了一个事件的监听器MouseDownOutside。但它只听左键。我也想通过右键单击将其关闭,但如果我右键单击弹出窗口,则应该将其打开。我在谷歌上搜索,但第二次没有任何解决方案。有人知道关闭弹出窗口的方法吗?

所以创建弹出窗口的代码看起来像

var myPopUp:CustomComponentClass = new CustomComponentClass();
PopUpManager.addPopUp(myPopUp, Parent, true);
PopUpManager.centerPopUp(myPopUp);

关闭弹出窗口

PopUpManager.removePopUp(myPopUp);

提前致谢

4

1 回答 1

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);
}
于 2012-07-17T13:29:24.767 回答