Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > Programmieren von Anzeigeobjekten > Verwenden von Anzeigeobjekten > 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. |
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.
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:
StageScaleMode.EXACT_FIT skaliert die SWF-Datei proportional.StageScaleMode.SHOW_ALL legt fest, ob ein Rahmen dargestellt wird, vergleichbar mit den schwarzen Balken beim Anzeigen eines Breitbild-Kinofilms auf einem Standardfernseher. StageScaleMode.NO_BORDER legt fest, ob der Inhalt teilweise abgeschnitten werden kann oder nicht.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);
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:
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>
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.
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