我正在尝试在主应用程序窗口的中间放置一个弹出窗口(TitleWindow)。如何将弹出窗口的坐标设置为主应用程序窗口? 我尝试了localToGlobal功能,但没有运气,我只是无法获得主窗口x和y。
提前致谢, 乌兹。
答案 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指向主应用程序。因此弹出窗口出现在应用程序的中间