2012-01-19 62 views
5

如何找出系統鑲邊的大小以便我可以指定窗口大小以實現我想要的舞臺大小?AIR - 將NativeWindow的大小設置爲包含系統鑲邊

如果我的主窗口設置爲800 x 600(舞臺),並且創建如下所示的第二個窗口,則它會更小。

public function Main():void 
{ 
    var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); 
    windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD; 
    windowOptions.type = NativeWindowType.NORMAL; 
    var newWindow:NativeWindow = new NativeWindow(windowOptions); 
    newWindow.width = 800; 
    newWindow.height = 600; 
    newWindow.stage.scaleMode = StageScaleMode.NO_SCALE; 
    newWindow.stage.align = StageAlign.TOP_LEFT; 
    newWindow.activate(); 

} 

我假設你同時增加newWindow.width = 800;newWindow.height = 600;佔鉻,但你如何找到這個價值?

回答

4

您可以通過減去內部大小(不包括鉻)的窗口大小(包括鉻)來計算鉻的大小。

從NativeWindows的width幫助:

報道了原生窗口尺寸包括任何系統窗口 鉻時顯示。可從Stage.stageWidth屬性中獲取窗口 中可用顯示區域的寬度。

因此:

所以內部尺寸可以與stage object(stage.stageWidth和stage.stageHeight):獲得

var chromeWidth=newWindow.width-newWindow.stage.stageWidth; 
var chromeHeight=newWindow.height-newWindow.stage.stageHeight; 
0

當創建與NO_SCALE的stage.stageHeight和階段ActionScript項目.stageWidth不能用於計算主應用程序窗口中的鑲邊,因爲它們不會調整爲符合內部寬度。您必須參考主窗口階段。

要找到主窗口內部舞臺的高度和寬度,您可以使用stage.nativeWindow.stage引用stageHeight和stageWidth屬性給出內部寬度。

例如對於1280x720所需的內部尺寸:

// width stage.nativeWindow.width = 1280 + (stage.nativeWindow.width - 
stage.nativeWindow.stage.stageWidth); 

// height stage.nativeWindow.height = 720 + (stage.nativeWindow.height 
- stage.nativeWindow.stage.stageHeight); 
0

僅供參考,因爲我覺得其他答案不夠清楚。將一個新窗口設置爲所需的尺寸:

// first set the desired window dimensions to set the (smaller) stage dimensions: 
newWindow.width = 1024; 
newWindow.height = 768; 

// then reset the window dimensions and add chrome dimensions: 
newWindow.width = 1024 + (1024 - newWindow.stage.stageWidth); 
newWindow.height = 768 + (768 - newWindow.stage.stageHeight); 
相關問題