2010-12-06 84 views
0

我創建了一個窗口組件,但它會隨機放置我是否打開它的窗口,x和y位置只會偏移元素,而不是窗口。我如何將它放置在屏幕的中心?中心窗口組件

Flex 4的(AS3):

private function openDoc():void { 
    if (newWindow != null) newWindow.close(); 
    newWindow = new docwin(); 
    newWindow.width = 500; 
    newWindow.height = 320; 
    newWindow.type = "normal"; 
    newWindow.systemChrome = "standard"; 
    newWindow.transparent = false; 
    newWindow.setStyle("showFlexChrome", true); 
    newWindow.showStatusBar = false; 
    newWindow.minimizable = false; 
    newWindow.maximizable = false; 
    newWindow.resizable = false; 
    newWindow.open(); 
} 

回答

1

試試這個:

newWindow.x = Math.ceil((Capabilities.screenResolutionX - newWindow.width)/2); 
newWindow.y = Math.ceil((Capabilities.screenResolutionY - newWindow.height)/2); 
+0

實際上,將這個添加到Window組件中,使用「this.nativewindow」而不是「newWindow」來實現每行工作。 newWindow是一個組件,而不是nativeWindow,它已經讓Flex 4和AIR 2中的很多組件變得非常混亂。 Math.ceil是可選的。謝謝! – Proyb2 2010-12-06 12:50:17

0

你必須參照stageWidth和stageHeight屬性以定位新的窗口。

假設你的新窗口的原點是左上角,該窗口的新位置將是:

(Stage.stageWidth - newWindow.width)/ 2,(Stage.stageHeight - newWindow.height)/2;

+0

關於顯示完整的代碼如何?不知道如何使用你的代碼。它適用於「窗口」組件嗎? – Proyb2 2010-12-06 08:29:29

+0

根據Michaels的答案使用它 - Capabilites.screenResolutionX爲您提供設備的屏幕尺寸,例如1024x768的PC屏幕。 stageWidth爲您提供頁面中播放器元素的實際大小。 hth – 2010-12-06 13:15:41

1

您可以使用窗口的佈局屬性一樣horizo​​ntalCentre和verticalCentre使用contstraint基於佈局方案