2010-03-16 95 views
1

我試圖在主應用程序窗口的中間放置一個彈出窗口(TitleWindow)。我如何將彈出窗口的座標設置爲主應用程序窗口? 我嘗試了localToGlobal函數,但沒有運氣,我只是無法獲得主窗口x和y。在主窗口的中間放置彈出窗口

在此先感謝, 烏茲。

回答

2

Adobe Docs

只需調用在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); 
+0

我做到了,但它將彈出窗口的中心相對於其父窗口(我忘了提及主窗口不是彈出窗口的父窗口,我在窗口中有幾個窗口在窗口中)。我所需要的是以某種方式獲得綿窗的屬性。 感謝您的回答, Uzi。 – 2010-03-17 06:16:00

+0

我根據你的意見編輯了我的答案。將來,如果您可以發佈一些代碼,它將幫助我們爲您的問題提供更具體的解決方案。 我希望我能幫到你! :) – 2010-03-17 15:10:21

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

這也會起作用,但是爲什麼在PopUpManager已經給我們提供了一種中心彈出窗口的方法時通過額外的工作呢? – 2010-03-17 15:20:00

+0

我認爲PopUpManager.centerPopUp將popUp作爲參數,而不是父級。有什麼我失蹤? – Nishu 2010-03-17 15:35:35

+0

使用PopUpManager.addPopUp創建彈出窗口時,可以指定彈出窗口的父控件。因此,當您調用centerPopUp方法時,它將自動將其自身置於其父控件中間。 – 2010-03-18 18:24:25

0

@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彈出出現在中間的應用程序