我試圖在主應用程序窗口的中間放置一個彈出窗口(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