2012-01-19 7 views
5

Come scopri la dimensione del chrome di sistema in modo che sia possibile specificare le dimensioni della finestra per ottenere le dimensioni dello stage che desidero?AIR: imposta la dimensione di NativeWindow per includere il chrome di sistema

Se la finestra principale è impostata su 800 x 600 (stage) e creo una seconda finestra come di seguito, sarà più piccola.

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(); 

} 

Presumo che aumentare sia newWindow.width = 800; e newWindow.height = 600; per rappresentano il cromo, ma come si fa a trovare questo valore?

risposta

4

è possibile calcolare la dimensione del cromo sottraendo le dimensioni della finestra (che includono il cromo) con la dimensione interna (che esclude il cromo).

Dal width aiuto di NativeWindows:

Le dimensioni riportate in una finestra nativa includono qualsiasi finestra del sistema cromo che viene visualizzato. La larghezza dell'area di visualizzazione utilizzabile all'interno di una finestra è disponibile dalla proprietà Stage.stageWidth.

Quindi la dimensione interna può essere ottenuta con stage object (stage.stageWidth e stage.stageHeight:)

quindi:

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

Quando si creano progetti ActionScript con NO_SCALE lo stage.stageHeight e stadio .stageWidth non può essere utilizzato per calcolare il cromo nella finestra principale dell'applicazione in quanto non vengono ridimensionati per adattarsi alla larghezza interna. È necessario fare riferimento alla fase della finestra principale.

Per trovare l'altezza e la larghezza del tavolino interno delle finestre principali è possibile utilizzare stage.nativeWindow.stage reference stageHeight e stageWidth proprietà che danno larghezza interna.

ad es. per una dimensione interna desiderata di 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

Per riferimento, poiché ritengo che le altre risposte non siano abbastanza chiare. Per impostare una nuova finestra alle dimensioni desiderate:

// 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); 
Problemi correlati