Einstellen der Stage-Eigenschaften

Die Stage-Klasse überschreibt die meisten Eigenschaften und Methoden der DisplayObject-Klasse. Wenn Sie eine diese überschriebenen Eigenschaften oder Methoden aufrufen, löst Flash Player eine Ausnahme aus. Beispielsweise hat das Stage-Objekt keine x- oder y-Eigenschaften, da seine Position im Hauptcontainer der Anwendung festgelegt ist. Die x- und y-Eigenschaften beziehen sich auf die Position eines Anzeigeobjekts relativ zu seinem Container. Da die Bühne in keinem anderen Anzeigeobjektcontainer enthalten ist, treffen diese Eigenschaften nicht zu.

HINWEIS

 

Einige Eigenschaften und Methoden der Stage-Klasse stehen Anzeigeobjekten nicht zur Verfügung, da sie sich nicht in der gleichen Sicherheits-Sandbox wie die erste geladene SWF-Datei befinden. Weitere Informationen finden Sie unter Sicherheit der Bühne.

Unterthemen

Einstellen der Wiedergabebildrate
Steuern der Bühnenskalierung
Verwenden des Vollbildmodus

Einstellen der Wiedergabebildrate

Die framerate-Eigenschaft der Stage-Klasse dient zum Einstellen der Bildrate für alle SWF-Dateien, die in die Anwendung geladen werden. Weitere Informationen finden Sie im Komponenten-Referenzhandbuch für ActionScript 3.0.

Steuern der Bühnenskalierung

Wenn die Größe eines Flash Player-Bildschirms geändert wird, wird der Bühneninhalt zum Ausgleich automatisch entsprechend angepasst. Die scaleMode-Eigenschaft der Stage-Klasse legt fest, wie der Bühneninhalt angepasst wird. Für diese Eigenschaft können vier verschiedene Werte festgelegt werden, die als Konstanten in der flash.display.StageScaleMode-Klasse definiert sind.

Bei drei scaleMode-Werten (StageScaleMode.EXACT_FIT, StageScaleMode.SHOW_ALL und StageScaleMode.NO_BORDER) wird der Bühneninhalt von Flash Player innerhalb der Anwendungsfenstergröße skaliert. Die drei Optionen unterscheiden sich in der Art, wie diese Skalierung erfolgt:

Wenn hingegen scaleMode auf StageScaleMode.NO_SCALE gesetzt ist, behält der Bühneninhalt die festgelegte Größe, wenn der Benutzer die Größe des Flash Player-Fensters ändert. Nur in diesem Skalierungsmodus können die Eigenschaften width und height der Stage-Klasse zum Ermitteln der tatsächlichen Abmessungen des Flash Player-Fensters nach der Größenänderung (in Pixel) verwendet werden. (In den anderen Skalierungsmodi geben die Eigenschaften stageWidth und stageHeight immer die ursprüngliche Breite und Höhe der SWF-Datei an.) Wenn scaleMode den Wert StageScaleMode.NO_SCALE aufweist, wird zusätzlich bei Größenänderungen der SWF-Datei das resize-Ereignis der Stage-Klasse ausgelöst, um entsprechende Anpassungen zu ermöglichen.

Infolgedessen haben Sie im Modus StageScaleMode.NO_SCALE für scaleMode bei Bedarf eine größere Kontrolle darüber, wie Bildschirminhalte an Fenster angepasst werden, deren Größe sich geändert hat. Beispielsweise empfiehlt es sich für eine SWF-Datei mit einem Video und einer Steuerungsleiste, dass die Größe der Steuerungsleiste nach einer Größenänderung der Bühne gleich bleibt und nur die Größe des Videofensters an die geänderte Größe der Bühne angepasst wird. Dies wird im folgenden Beispiel veranschaulicht:

// videoScreen ist ein Anzeigeobjekt (d. h. eine Video-Instanz) mit einem
// Video. Es ist in der oberen linken Ecke der Bühne positioniert und
// soll sich bei Größenänderungen der SWF-Datei ebenfalls ändern.

// controlBar ist ein Anzeigeobjekt (d. h. ein Sprite) mit mehreren
// Schaltflächen. Es soll immer in der linken unteren Ecke der Bühne
// (unterhalb von videoScreen) bleiben und seine Größe bei Größenänderungen
// der SWF-Datei nicht ändern.

import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

var swfStage:Stage = videoScreen.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;

function resizeDisplay(event:Event):void
{
    var swfWidth:int = swfStage.stageWidth;
    var swfHeight:int = swfStage.stageHeight;

    // Resize the video window.
    var newVideoHeight:Number = swfHeight - controlBar.height;
    videoScreen.height = newVideoHeight;
    videoScreen.scaleX = videoScreen.scaleY;
    
    // Reposition the control bar.
    controlBar.y = newVideoHeight;
}

swfStage.addEventListener(Event.RESIZE, resizeDisplay);

Verwenden des Vollbildmodus

Im Vollbildmodus können Sie eine SWF-Datei auf dem gesamten Bildschirm eines Anzeigeprogramms anzeigen, ohne Ränder, Menüleisten und anderen Oberflächenobjekte. 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 displayState auf StageDisplayState.FULL_SCREEN:

// mySprite ist eine Sprite-Instanz, die der Anzeigeliste bereits hinzugefügt wurde
mySprite.stage.displayState = StageDisplayState.FULL_SCREEN;

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

mySprite.stage.displayState = StageDisplayState.NORMAL;

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

Das Skalierungsverhalten der Bühne im Vollbildmodus entspricht dem des normalen Modus; die Skalierung wird durch die Eigenschaft scaleMode der Stage-Klasse geregelt. Wie immer, wenn die Eigenschaft scaleMode auf StageScaleMode.NO_SCALE gesetzt ist, ändern sich die Eigenschaften stageWidth und stageHeight der Bühne, um die Größe des Bildschirmbereichs widerzuspiegeln, der von der SWF-Datei belegt wird (in diesem Fall der gesamte Bildschirm).

Sie können das fullScreen-Ereignis der Stage-Klasse verwenden, um ein Aktivieren oder Deaktivieren des Vollbildmodus zu erkennen und darauf zu reagieren. Häufig empfiehlt es sich beim Aktivieren oder Deaktivieren des Vollbildmodus, Objekte auf dem Bildschirm neu zu positionieren, hinzuzufügen oder zu entfernen. Dies ist im folgenden Beispiel dargestellt:

import flash.events.FullScreenEvent;

function fullScreenRedraw(event:FullScreenEvent):void
{
    if (event.fullScreen)
    {
        // Eingabetextfelder entfernen.
        // Eine Schaltfläche hinzufügen, die den Vollbildmodus beendet.
    }
    else
    {
        // Eingabetextfelder neu hinzufügen.
        // Die Schaltfläche entfernen, die den Vollbildmodus beendet.
    }
}

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.

Beim Verwenden des Vollbildmodus in ActionScript müssen Sie Folgendes berücksichtigen:

Außerdem gibt es einige sicherheitsbezogene Einschränkungen, über die Sie informiert sein sollten. Weitere Informationen hierzu finden Sie unter Sicherheits-Sandboxen.


Flash CS3

 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000150.html