2012-01-19 5 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 및 스테이지 액션 프로젝트를 작성 .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); 
관련 문제