将弹出窗口放在主窗口的中间

时间:2010-03-16 14:44:58

标签: flex flash flex3

我正在尝试在主应用程序窗口的中间放置一个弹出窗口(TitleWindow)。如何将弹出窗口的坐标设置为主应用程序窗口? 我尝试了localToGlobal功能,但没有运气,我只是无法获得主窗口x和y。

提前致谢, 乌兹。

3 个答案:

答案 0 :(得分:3)

来自Adobe Docs

只需在TitleWindow的centerPopUp事件中调用CreationComplete方法。

private function handleCreationComplete():void {
  // Center the TitleWindow container 
  // over the control that created it.
  PopUpManager.centerPopUp(this);
}

如果您正在方法中创建popUp,您还可以尝试:

public function openWindow(event:MouseEvent):void {
  myPopUp = new TextArea();
  myPopUp.width= 220;
  myPopUp.height= 150;
  myPopUp.text = "Hold down the Shift key, and " + 
    "click in the TextArea to close it.";
  myPopUp.addEventListener(MouseEvent.CLICK, closeWindow);
  PopUpManager.addPopUp(myPopUp, this, true);
  PopUpManager.centerPopUp(myPopUp);
}

修改:您还可以尝试:

PopUpManager.centerPopUp(Application.application as DisplayObject);

或者组件是否直接位于应用程序的主要阶段

PopUpManager.centerPopUp(this.parent);

第二次修改:如果您使用PopUpManager.addPopUp方法启动弹出窗口,只需将第二个参数从this更改为this.parent(或其他你喜欢的组件)。第二个参数告诉PopUpManager弹出窗口的父级是什么。查看Adobe Live Docs了解详情。

PopUpManager.addPopUp(myPopUp, this.parent, true);

答案 1 :(得分:0)

myPopUp.x = (Application.application.width - myPopUp.width)/2
myPopUp.y = (Application.application.height - myPopUp.height)/2

答案 2 :(得分:0)

@uzi orgad  我认为这适合你,试试这个

var popup:Object ;
popup = PopUpManager.createPopUp(
                         FlexGlobals.topLevelApplication as DisplayObject, 
                         popupname, true);
PopUpManager.centerPopUp(popup as mx.core.IFlexDisplayObject);

作为DisplayObject的FlexGlobals.topLevelApplication指向主应用程序。因此弹出窗口出现在应用程序的中间