想要在弹出窗口外听取右键单击。?

时间:2012-07-17 10:43:14

标签: actionscript-3 air flex4.5

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

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

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

关闭弹出窗口

PopUpManager.removePopUp(myPopUp);

提前致谢

1 个答案:

答案 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);
}