我试图在主应用程序窗口的中间放置一个弹出窗口(TitleWindow)。我如何将弹出窗口的坐标设置为主应用程序窗口? 我尝试了localToGlobal函数,但没有运气,我只是无法获得主窗口x和y。在主窗口的中间放置弹出窗口
在此先感谢, 乌兹。
我试图在主应用程序窗口的中间放置一个弹出窗口(TitleWindow)。我如何将弹出窗口的坐标设置为主应用程序窗口? 我尝试了localToGlobal函数,但没有运气,我只是无法获得主窗口x和y。在主窗口的中间放置弹出窗口
在此先感谢, 乌兹。
只需调用在CreationComplete
事件的TitleWindow中的centerPopUp
方法。
private function handleCreationComplete():void {
// Center the TitleWindow container
// over the control that created it.
PopUpManager.centerPopUp(this);
}
如果您正在从一个方法中的弹出窗口中,你也可以尝试:
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);
myPopUp.x = (Application.application.width - myPopUp.width)/2
myPopUp.y = (Application.application.height - myPopUp.height)/2
这也会起作用,但是为什么在PopUpManager已经给我们提供了一种中心弹出窗口的方法时通过额外的工作呢? – 2010-03-17 15:20:00
我认为PopUpManager.centerPopUp将popUp作为参数,而不是父级。有什么我失踪? – Nishu 2010-03-17 15:35:35
使用PopUpManager.addPopUp创建弹出窗口时,可以指定弹出窗口的父控件。因此,当您调用centerPopUp方法时,它将自动将其自身置于其父控件中间。 – 2010-03-18 18:24:25
@uzi orgad 我认为这将是适合你,试试这个
var popup:Object ;
popup = PopUpManager.createPopUp(
FlexGlobals.topLevelApplication as DisplayObject,
popupname, true);
PopUpManager.centerPopUp(popup as mx.core.IFlexDisplayObject);
FlexGlobals.topLevelApplication作为的DisplayObject指向主application.So弹出出现在中间的应用程序
我做到了,但它将弹出窗口的中心相对于其父窗口(我忘了提及主窗口不是弹出窗口的父窗口,我在窗口中有几个窗口在窗口中)。我所需要的是以某种方式获得绵窗的属性。 感谢您的回答, Uzi。 – 2010-03-17 06:16:00
我根据你的意见编辑了我的答案。将来,如果您可以发布一些代码,它将帮助我们为您的问题提供更具体的解决方案。 我希望我能帮到你! :) – 2010-03-17 15:10:21