6

如何找出系统chrome的大小,以便我可以指定窗口大小以达到我想要的舞台大小?

如果我的主窗口设置为 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;考虑 chrome,但是您如何找到这个值?

4

3 回答 3

5

您可以通过用内部尺寸(不包括镶边)减去窗口尺寸(包括镶边)来计算镶边的大小。

从 NativeWindows 的宽度帮助:

为本机窗口报告的尺寸包括显示的任何系统窗口镶边。窗口内可用显示区域的宽度可从 Stage.stageWidth 属性中获得。

所以可以通过舞台对象(stage.stageWidth 和 stage.stageHeight: )获得内部尺寸

因此 :

var chromeWidth=newWindow.width-newWindow.stage.stageWidth;
var chromeHeight=newWindow.height-newWindow.stage.stageHeight;
于 2012-01-19T19:10:17.393 回答
0

在使用 NO_SCALE 创建 ActionScript 项目时,stage.stageHeight 和 stage.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);
于 2012-09-20T16:13:31.353 回答
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);   
于 2015-05-06T19:03:03.173 回答