1

ポップアップがあり、クリック以外のマウスで閉じたい。だから私は event のリスナーを作りましたMouseDownOutside。しかし、それは左クリックだけを聞きます。また、右クリックで閉じたいのですが、ポップアップを右クリックすると開く必要があります。Googleで検索しましたが、2回目は解決策がありません。ポップアップを閉じる方法を知っている人はいますか?

ポップアップの作成コードは次のようになります

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 に答える