Verwenden des Vollbildmodus

Im Vollbildmodus können Sie die Bühne eines Movies so einrichten, dass sie den gesamten Monitor eines Benutzers füllt und keine Containerrahmen oder Menüs angezeigt werden. Mit der Eigenschaft displayState der Stage-Klasse wird der Vollbildmodus für eine SWF-Datei aktiviert bzw. deaktiviert. Die Eigenschaft displayState kann auf einen der Werte eingestellt werden, die durch die Konstanten in der flash.display.StageDisplayState-Klasse definiert sind. Um in den Vollbildmodus zu wechseln, setzen Sie die displayState-Eigenschaft auf StageDisplayState.FULL_SCREEN:

stage.displayState = StageDisplayState.FULL_SCREEN; 

In Flash Player kann der Vollbildmodus durch ActionScript nur als Reaktion auf einen Mausklick (einschließlich Rechtsklick) oder einen Tastenanschlag initiiert werden. Bei AIR-Inhalt, der in der Sicherheits-Sandbox der Anwendung ausgeführt wird, muss der Vollbildmodus nicht als Reaktion auf eine Benutzeraktion aufgerufen werden.

Um den Vollbildmodus zu beenden, setzen Sie displayState auf StageDisplayState.NORMAL.

stage.displayState = StageDisplayState.NORMAL; 

Darüber hinaus kann ein Benutzer den Vollbildmodus beenden, indem er den Fokus auf ein anderes Fenster setzt oder einen der folgenden Tastaturbefehle verwendet: Esc-Taste (alle Plattformen), Strg-W (Windows), Befehl-W (Mac) oder Alt-F4 (Windows).

Aktivieren des Vollbildmodus in Flash Player

Um den Vollbildmodus für eine SWF-Datei zu aktivieren, die in eine HTML-Seite eingebettet ist, muss der HTML-Code zum Einbetten von Flash Player ein param-Tag und ein embed-Attribut mit dem Namen allowFullScreen und dem Wert true enthalten. Beispiel:

<object> 
    ... 
    <param name="allowFullScreen" value="true" /> 
    <embed ... allowfullscreen="true" /> 
</object>

Wählen Sie in der Flash-Authoring-Umgebung „Datei“ > „Einstellungen für Veröffentlichungen“ und im Dialogfeld „Einstellungen für Veröffentlichungen“ auf der Registerkarte „HTML“ die Vorlage „Nur Flash - Vollbild zulassen“.

Stellen Sie in Flex sicher, dass die HTML-Vorlage <object>- und <embed>-Tags enthält, die den Vollbildmodus unterstützen.

Wenn Sie JavaScript in einer Webseite verwenden, um die SWF-eingebetteten Tags zu erzeugen, müssen Sie den JavaScript-Code ändern, um das Tag und das Attribut für den allowFullScreen-Parameter hinzuzufügen. Wenn Ihre HTML-Seite z. B. die AC_FL_RunContent()-Funktion verwendet (die sowohl von Flex Builder als auch von Flash-generierten HTML-Seiten verwendet wird), müssen Sie den allowFullScreen-Parameter wie folgt zum Funktionsaufruf hinzufügen:

AC_FL_RunContent( 
    ... 
    'allowFullScreen','true', 
    ... 
    ); //end AC code

Dies gilt nicht für SWF-Dateien, die im eigenständigen Flash Player ausgeführt werden.

Hinweis: Wenn Sie den Fenstermodus („wmode“ in HTML) auf „Undurchsichtig ohne Fenster“ (opaque) oder „Durchsichtig ohne Fenster“ (transparent) einstellen, ist der Vollbildmodus immer undurchsichtig

Es gibt auch sicherheitsbezogene Einschränkungen für die Verwendung des Vollbildmodus mit Flash Player in einem Browser. Diese Einschränkungen werden unter Flash Player-Sicherheit beschrieben.

Vollbild-Bühnengröße und Skalierung

Die Eigenschaften Stage.fullScreenHeight und Stage.fullScreenWidth geben die Höhe und die Breite des Monitors zurück, der für den Vollbildmodus verwendet wird, sofern dieser Status sofort aufgerufen wird. Diese Werte können falsch sein, wenn der Benutzer die Möglichkeit hat, den Browser von einem Monitor zu einem anderen zu bewegen, nachdem Sie diese Werte abgerufen haben, aber bevor Sie in den Vollbildmodus gewechselt sind. Wenn Sie diese Werte in derselben Ereignisprozedur abrufen, in der Sie die Stage.displayState-Eigenschaft auf StageDisplayState.FULL_SCREEN eingestellt haben, sind diese Werte korrekt. Wenn der Benutzer über mehrere Monitore verfügt, wird ein Monitor mit dem SWF-Inhalt ausgefüllt . Flash Player und AIR ermitteln über eine Metrik, welcher Monitor den größten Teil der SWF-Datei anzeigt, und verwenden diesen Monitor dann für den Vollbildmodus. Die Eigenschaften fullScreenHeight und fullScreenWidth geben nur die Größe des Monitors wieder, der für den Vollbildmodus verwendet wird. Weitere Informationen finden Sie unter Stage.fullScreenHeight und Stage.fullScreenWidth im Komponenten-Referenzhandbuch für ActionScript 3.0.

Das Skalierungsverhalten der Bühne im Vollbildmodus entspricht dem im normalen Modus; die Skalierung wird durch die Eigenschaft scaleMode der Stage-Klasse geregelt. Wenn die scaleMode-Eigenschaft auf StageScaleMode.NO_SCALE eingestellt wird, ändern sich die Eigenschaften stageWidth und stageHeight der Bühne und geben die Größe des Bildschirmbereichs an, der von der SWF-Datei belegt wird (in diesem Fall der gesamte Bildschirm); bei Anzeige im Browser wird die Einstellung vom HTML-Parameter für diesen gesteuert.

Sie können das fullScreen-Ereignis der Stage-Klasse verwenden, um das Aktivieren oder Deaktivieren des Vollbildmodus zu erkennen und darauf zu reagieren. Beispielsweise möchten Sie beim Aktivieren oder Deaktivieren des Vollbildmodus Objekte auf dem Bildschirm neu positionieren, hinzufügen oder entfernen. Dies wird im folgenden Beispiel gezeigt:

import flash.events.FullScreenEvent; 
 
function fullScreenRedraw(event:FullScreenEvent):void 
{ 
    if (event.fullScreen) 
    { 
        // Remove input text fields. 
        // Add a button that closes full-screen mode. 
    } 
    else 
    { 
        // Re-add input text fields. 
        // Remove the button that closes full-screen mode. 
    } 
} 
 
mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);

Wie dieser Code zeigt, ist das Ereignisobjekt für das fullScreen-Ereignis eine Instanz der flash.events.FullScreenEvent-Klasse, die eine fullScreen-Eigenschaft enthält, mit der angegeben wird, ob der Vollbildmodus aktiviert (true) oder deaktiviert (false) ist.

Tastaturunterstützung im Vollbildmodus

Wenn Flash Player in einem Browser ausgeführt wird, ist im Vollbildmodus der gesamte tastaturbezogene ActionScript-Code, zum Beispiel Tastaturereignisse und Texteingaben in TextField-Instanzen, deaktiviert. Es gibt folgende Ausnahmen (Tasten, die aktiviert sind):

  • Bestimmte Tasten für nichtdruckbare Zeichen, speziell die Pfeiltasten, die Leertaste und die Tabulatortaste

  • Tastaturbefehle, die den Vollbildmodus beenden: Esc (Windows und Mac), Strg-W (Windows), Befehl-W (Mac) und Alt-F4

Diese Einschränkungen gelten nicht für SWF-Inhalt, der im eigenständigen Flash Player oder in AIR ausgeführt wird. AIR unterstützt einen interaktiven Vollbildmodus, der Tastatureingaben zulässt.

Hardwareskalierung im Vollbildmodus

Mit der fullScreenSourceRect-Eigenschaft der Stage-Klasse können Sie Flash Player oder AIR so konfigurieren, dass ein bestimmter Bereich der Bühne in den Vollbildmodus skaliert wird. Flash Player und AIR skalieren mit der Hardware, falls verfügbar, und verwenden die Grafikkarte des Benutzercomputers, wodurch Inhalte normalerweise schneller als mit Softwareskalierung angezeigt.

Um die Vorteile der Hardwareskalierung zu nutzen, setzen Sie die gesamte Bühne oder einen Teil der Bühne in den Vollbildmodus. Im folgenden ActionScript 3.0-Code wird die gesamte Bühne in den Vollbildmodus gesetzt:

import flash.geom.*;  
{ 
    stage.fullScreenSourceRect = new Rectangle(0,0,320,240); 
    stage.displayState = StageDisplayState.FULL_SCREEN; 
}

Wenn diese Eigenschaft auf ein gültiges Rechteck und die Eigenschaft displayState auf den Vollbildmodus gesetzt wird, skalieren Flash Player und AIR den angegebenen Bereich. Die tatsächliche Größe der Bühne in Pixel innerhalb von ActionScript wird nicht geändert. Flash Player und AIR erzwingen eine Mindestgröße des Rechtecks, damit die standardmäßige Meldung „Vollbildmodus mit Esc beenden“ darin Platz findet. Diese Mindestgröße beträgt normalerweise ca. 260 x 30 Pixel, kann jedoch je nach Plattform und Flash Player-Version variieren.

Die fullScreenSourceRect-Eigenschaft kann nur festgelegt werden, wenn sich Flash Player bzw. AIR nicht im Vollbildmodus befindet. Um diese Eigenschaft korrekt zu verwenden, stellen Sie diese Eigenschaft zuerst ein und stellen Sie dann die displayState-Eigenschaft auf den Vollbildmodus ein.

Um die Skalierung zu aktivieren, legen Sie die Eigenschaft fullScreenSourceRect auf ein Rechteckobjekt fest.

stage.fullScreenSourceRect = new Rectangle(0,0,320,240);

Zum Deaktivieren der Skalierung setzen Sie die fullScreenSourceRect-Eigenschaft auf null.

stage.fullScreenSourceRect = null;

Um alle Hardwarebeschleunigungsfunktionen mit Flash Player zu nutzen, aktivieren Sie sie über das Dialogfeld „Flash Player-Einstellungen“. Dieses Dialogfeld laden Sie, indem Sie mit der rechten Maustaste (Windows) oder bei gedrückter Ctrl-Taste (Mac) im Browser auf Flash Player-Inhalt klicken. Wählen Sie die Registerkarte „Anzeige“ und aktivieren Sie das Kontrollkästchen „Hardwarebeschleunigung aktivieren“.

Direkt- und GPU-Compositing-Fenstermodi

Flash Player 10 führt zwei Fenstermodi ein, „Direkt“ und „GPU-Compositing“, die Sie mithilfe der Veröffentlichungseinstellungen im Flash-Authoring-Tool aktivieren können. Diese Modi werden in AIR nicht unterstützt. Um diese Modi zu nutzen, müssen Sie die Hardwarebeschleunigung für Flash Player aktivieren.

Im Direktmodus werden Grafiken auf dem schnellsten, direktesten Pfad auf den Bildschirm gebracht, was bei der Videowiedergabe vorteilhaft ist.

Im GPU-Compositing-Modus wird das Compositing mithilfe der Graphikverarbeitungseinheit (Graphics Processing Unit, GPU) auf der Grafikkarte beschleunigt. Bei Video-Compositing handelt es sich um das Verfahren, bei dem mehrere Bilder übereinandergeschichtet werden, um ein Videobild zu erstellen. Durch die Beschleunigung des Compositing mithilfe der GPU kann die Leistung bei der YUV- Konvertierung, Farbkorrektur, Drehung, Skalierung und Mischung verbessert werden. YUV-Konvertierung verweist auf die Farbkonvertierung von zusammengesetzten, bei der Übertragung verwendeten Analogsignalen in das RGB-Farbmodell (rot, grün, blau), das von Videokameras und Bildschirmen verwendet wird. Durch die Beschleunigung des Compositing mithilfe der GPU werden die Speicher- und Rechenanforderungen verringert, die andernfalls an die CPU gestellt würden. Außerdem führt sie zu einer glatteren Wiedergabe von standardmäßigen Videos.

Gehen Sie bei der Implementierung dieser Fenstermodi vorsichtig vor. Das GPU-Compositing kann hohe Ansprüche an die Speicher- und CPU-Ressourcen stellen. Wenn Vorgänge (wie z. B. Mischmodi, Filtern, Zuschneiden oder Maskieren) nicht in der GPU ausgeführt werden können, müssen sie von der Software ausgeführt werden. Adobe empfiehlt, sich bei Verwendung dieser Modi auf eine SWF-Datei pro HTML-Seite zu beschränken, und rät davon ab, diese Modi für Banner zu aktivieren. Die Funktion „Film testen“ von Flash setzt keine Hardwarebeschleunigung ein, Sie können Sie aber über die Option „Vorschau für Veröffentlichungen“ verwenden.

Wenn Sie in der SWF-Datei eine Bildrate von über 60 einstellen, ist die maximale Aktualisierungsrate des Bildschirms nutzlos. Bei einer Bildrate zwischen 50 und 55 werden übersprungene Bilder in Betracht gezogen, die hin und wieder aus verschiedenen Gründen auftreten können.

Für den Direktmodus ist Microsoft DirectX 9 mit 128 MB VRAM unter Windows bzw. OpenGL unter Apple Macintosh, Mac OS X v10.2 oder höher erforderlich. Für das GPU-Compositing ist Microsoft DirectX 9 und Pixel Shader 2.0-Unterstützung unter Windows mit 128 MB VRAM erforderlich. Unter Mac OS X und Linux sind für das GPU-Compositing OpenGL 1.5 sowie mehrere OpenGL-Erweiterungen erforderlich (Framebuffer-Objekt, Multitexture, Shader-Objekte, Shading Language, Fragment-Shader).

Sie können die Beschleunigungsmodi direct und gpu für einzelne SWF-Dateien aktivieren. Klicken Sie dazu im Dialogfeld „Einstellungen für Veröffentlichungen“ auf die Registerkarte „Flash“ und rufen Sie hier das Menü „Hardwarebeschleunigung“ auf. Wenn Sie „Keine“ auswählen, wird der Fenstermodus auf die entsprechende Einstellung in der Registerkarte „HTML“ zurückgesetzt, d. h. default, transparent oder opaque.