2016-07-15 11 views
1

Windows-Computer mit AIR.Adobe AIR - Vollbild/Anzeige

Jede Nacht werden die Lernanzeigen ausgeschaltet. Die Computer bleiben eingeschaltet.

Auf bestimmten angezeigt, wenn sie drehen sie am Morgen auf der Bildschirmauflösung geht hin und her ein paar Mal bei 1920 beginnend x 1080 dann auf 1024 x 768 dann wieder auf 1920 x 1080.

Wenn dies geschieht für Ein Grund, warum die AIR-App ausflippt und bei 1024 x 768 bleibt, die nicht den Vollbildmodus einnimmt und Sie den Desktop sehen können. Wir müssen die AIR-App manuell neu starten.

Gibt es einen Weg, wenn dies passiert, können wir erkennen und gehen zurück, um Fullscreen zu erzwingen?

Vielen Dank im Voraus für Anregungen.

Antwort

2

Wenn Sie ein maximierter Fenster verwenden, können Sie für Event.RESIZE auf der Bühne hören (ausgelöst, wenn die Größe verändert Fenster get) und oder für die native Windows-displayStateChange oder resize Ereignisse hören. Wenn Sie den Anzeigezustand FULL_SCREEN (oder FULL_SCREEN_INTERACTIVE) verwenden, können Sie auf das Ereignis FullScreenEvent.FULL_SCREEN warten, um zu wissen, wann sich das geändert hat.

Hier ist ein Beispiel für ein paar Dinge können Sie versuchen:

//in your document class or main timeline, listen for the following events: 

stage.nativeWindow.addEventListener(NativeWindowBoundsEvent.RESIZE, windowResized); 
//the above will fire anytime the window size changes, Really this is all you need as this event will fire when the window display state changes as well. 

stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, windowResized); 
//the above will fire anytime the window state changes - eg. Maximized/Restore/Minimize. This likely won't trigger on a resolution change, but I've included it anyway 

stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullscreenChange); 
//the above will fire whenever you enter or leave fullscreen mode (stage.displayState) 

private function windowResized(e:Event):void { 
    //re-maximize the window 
    stage.nativeWindow.maximize(); 

    //OR Go to full screen mode 
    stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; 
} 

private function fullscreenChange(e:FullScreenEvent):void { 
    if (!e.fullScreen) { 
     //in half a second, go back to full screen 
     flash.utils.setTimeout(goFullScreen, 500); 
    } 
} 

private function goFullScreen():void { 
    stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; 
} 
+0

Dank BFAT! Ich habe etwas Ähnliches versucht, aber kein Ereignis ausgelöst. Ich werde einen Fehler bei Ihrer Implementierung machen. Und das wird immer die volle Auflösung von dem, was der Computer/Bildschirm eingestellt sind, gehen? –

+0

Es wird, ABER, es ist schwer zu wissen, was genau in Ihrem genauen Szenario passieren wird. Verwenden Sie den FULL_SCREEN-Anzeigezustand? oder Nur ein maximiertes Fenster? (Sie können auch auf den Statuswechsel der Bühne hören, um zu wissen, wann Sie aus dem Vollbildmodus gestartet wurden, was bei Verwendung des Vollbilds möglicherweise zuverlässiger ist.) – BadFeelingAboutThis

+0

Kommentieren Sie Ihre Ergebnisse, nachdem Sie dies versucht haben. Wenn dies nicht funktioniert, versuchen Sie, nach dem Ereignis eine Verzögerung von ein paar Sekunden hinzuzufügen, bevor Sie versuchen, den Maximierungsfaktor oder den Vollbildmodus erneut zu aktivieren. – BadFeelingAboutThis