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;
Um den interaktiven Vollbildmodus (neu in Flash Player 11.3) einzuschalten, stellen Sie die
displayState
-Eigenschaft auf
StageDisplayState.FULL_SCREEN_INTERACTIVE
ein:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
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 in von Flash Professional und Flash Builder 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
Sicherheit
beschrieben.
Aktivieren des interaktiven Vollbildmodus in Flash Player 11.3 und höher
Flash Player 11.3 und höher unterstützt den interaktiven Vollbildmodus, in dem alle Tasten der Tastatur unterstützt werden mit Ausnahme von
Esc
, womit der interaktive Vollbildmodus beendet wird. Der interaktive Vollbildmodus ist hilfreich beim Gaming (zum Beispiel, um in einem Multiplayer-Spiel zu chatten, oder für WASD-Tastatursteuerung in einem Egoshooter).
Um den interaktiven 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
allowFullScreenInteractive
und dem Wert
true
enthalten. Beispiel:
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="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 - Interaktives Vollbild zulassen“.
Stellen Sie in Flash Builder und Flex sicher, dass die HTML-Vorlagen die Tags
<object>
und
<embed>
enthalten, die den interaktiven 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
allowFullScreenInteractive
-Parameter hinzuzufügen. Wenn Ihre HTML-Seite z. B. die
AC_FL_RunContent()
-Funktion verwendet (die in von Flash Professional und Flash Builder generierten HTML-Seiten verwendet wird), müssen Sie den
allowFullScreenInteractive
-Parameter wie folgt zum Funktionsaufruf hinzufügen:
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
Dies gilt nicht für SWF-Dateien, die im eigenständigen Flash Player ausgeführt werden.
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 fullScreenHeight- und fullScreenWidth-Eigenschaften beziehen sich nur auf die Größe des Monitors, der für den Vollbildmodus verwendet wird. Weitere Informationen finden Sie unter
Stage.fullScreenHeight
und
Stage.fullScreenWidth
im
ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform
.
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.
Mausunterstützung im Vollbildmodus
Standardmäßig funktionieren Mausereignisse im Vollbildmodus genauso wie im Fenstermodus. Im Vollbildmodus können Sie jedoch optional die
Stage.mouseLock
-Eigenschaft festlegen, um die Maussperre zu aktivieren. Bei einer Maussperre ist der Cursor deaktiviert und unbegrenzte Mausbewegungen sind möglich.
Hinweis:
Sie können die Maussperre nur für Desktopanwendungen im Vollbildmodus aktivieren. Wenn Sie sie für Anwendungen, die nicht im Vollbildmodus ausgeführt werden, oder für Anwendungen auf mobilen Geräten festlegen, wird eine Ausnahme ausgegeben.
Unter den folgenden Bedingungen wird die Maussperre automatisch deaktiviert und der Mauscursor ist wieder sichtbar:
-
Der Benutzer beendet den Vollbildmodus, indem er die Escape-Taste drückt (alle Plattformen) oder eine der folgenden Tastenkombinationen verwendet: Strg+W (Windows), Befehl+W (Mac) oder Alt-F4 (Windows).
-
Das Anwendungsfenster verliert den Fokus.
-
Ein Element der Einstellungsbenutzeroberfläche ist sichtbar, zum Beispiel ein Datenschutzdialogfeld.
-
Ein natives Dialogfeld wird angezeigt, zum Beispiel beim Hochladen einer Datei.
Ereignisse, die mit Mausbewegung verknüpft sind, zum Beispiel das
mouseMove
-Ereignis, verwenden die MouseEvent-Klasse, um das Ereignisobjekt darzustellen. Wenn die Maussperre deaktiviert ist, verwenden Sie die
MouseEvent.localX
- und die
MouseEvent.localY
-Eigenschaft, um die Position der Maus zu bestimmen. Wenn die Maussperre aktiviert ist, verwenden Sie die
MouseEvent.movementX
- und die
MouseEvent.movementY
-Eigenschaft, um die Position der Maus zu bestimmen. Die Eigenschaften
movementX
und
movementY
enthalten Änderungen an der Position der Maus seit dem letzten Ereignis anstelle absoluter Koordinaten für die Mausposition.
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.