Erstellen einer neuen Skin

Am besten kopieren Sie eine der Skindateien, die in Flash enthalten sind, und verwenden sie als Ausgangsbasis, um eine neue Skin-SWF-Datei zu erstellen. Die FLA-Dateien für diese Skins finden Sie im Flash-Anwendungsordner unter „Configuration/FLVPlayback Skins/FLA/ActionScript 3.0/“. Damit die fertige Skin-SWF-Datei als Option im Dialogfeld „Skin auswählen“ verfügbar ist, legen Sie sie im Ordner „Configuration/FLVPlayback Skins/ActionScript 3.0“ im Flash-Anwendungsordner oder im lokalen Benutzerordner „Configuration/FLVPlayback Skins/ActionScript 3.0“ ab.

Da die Farbe einer Skin unabhängig von der Auswahl der Skin festgelegt werden kann, müssen Sie die FLA-Datei nicht bearbeiten, um die Farbe zu ändern. Wenn Sie eine Skin mit einer bestimmten Farbe erstellen und nicht möchten, dass die Farbe im Dialogfeld „Skin auswählen“ bearbeitet werden kann, verwenden Sie this.border_mc.colorMe = false; im ActionScript-Code der Skin-FLA-Datei. Informationen zum Festlegen der Farbe einer Skin finden Sie unter Auswählen einer vordefinierten Skin .

Wenn Sie die FLA-Dateien der installierten Flash-Skins betrachten, kommen Ihnen bestimmte Elemente auf der Bühne möglicherweise überflüssig vor, vieler dieser Elemente werden jedoch in Pfadebenen platziert. In der Live-Vorschau mit dem 9-teiligen Segmentraster können Sie rasch feststellen, was tatsächlich in der SWF-Datei angezeigt wird.

In den folgenden Abschnitten werden komplexere Anpassungsvorgänge und Änderungen an den SeekBar-, BufferingBar- und VolumeBar-Movieclips beschrieben.

Verwenden des Skin-Layouts

Wenn Sie die FLA-Datei einer Flash-Skin öffnen, sind die Movieclips der Skin auf der Hauptzeitleiste angeordnet. Diese Clips und der ActionScript-Code im selben Bild legen die Anordnung der Steuerelemente zur Laufzeit fest.

Zwar sieht die Layout-Ebene weitgehend so aus wie die Skin zur Laufzeit, der Inhalt dieser Ebene ist zur Laufzeit jedoch nicht sichtbar. Der Clip wird nur verwendet, um die Platzierung der Steuerelemente zu berechnen. Die anderen Steuerelemente auf der Bühne werden zur Laufzeit verwendet.

Die Layout-Ebene enthält einen Platzhalter für die FLVPlayback-Komponente namens „video_mc“. Alle anderen Steuerelemente werden in Relation zu „video_mc“ angeordnet. Wenn Sie mit einer der FLA-Dateien von Flash beginnen und die Größe der Steuerelemente ändern, können Sie das Layout wahrscheinlich durch Verschieben dieser Platzhalterclips korrigieren.

Jeder Platzhalterclip hat einen spezifischen Instanznamen. Die Namen der Platzhalterclips lauten playpause_mc, play_mc, pause_mc, stop_mc, captionToggle_mc, fullScreenToggle_mc, back_mc, bufferingBar_mc, bufferingBarFill_mc, seekBar_mc, seekBarHandle_mc, seekBarProgress_mc, volumeMute_mc, volumeBar_mc und volumeBarHandle_mc. Das Element, das beim Auswählen einer Skinfarbe neu eingefärbt wird, ist „border_mc“.

Welcher Clip für ein Steuerelement verwendet wird, ist nicht wichtig. Im Allgemeinen wird für Schaltflächen der Clip für den normalen Status verwendet. Für die anderen Steuerelemente wird der Clip für das jeweilige Steuerelement verwendet, allerdings nur der Überschaubarkeit halber. Von Bedeutung sind nur die horizontale bzw. vertikale Position ( x bzw. y ) sowie die Höhe und die Breite des Platzhalters.

Neben den Standardsteuerelementen können Sie auch beliebig viele zusätzliche Clips verwenden. Die einzige Anforderung für diese Clips ist, dass für ihre Bibliothekssymbole im Dialogfeld „Verknüpfung“ die Option „Export für ActionScript“ aktiviert ist. Die benutzerdefinierten Clips in der Layout-Ebene können einen beliebigen Instanznamen haben, sofern er nicht mit einem der oben aufgeführten reservierten Instanznamen identisch ist. Ein Instanzname ist nur erforderlich, um ActionScript zum Bestimmen des Layouts für den Clip festzulegen.

Der Clip „border_mc“ ist ein Sonderfall. Wenn Sie die Eigenschaft FlvPlayback.skinAutoHide auf den Wert true einstellen, wird die Skin angezeigt, wenn sich der Mauszeiger über dem Clip „border_mc“ befindet. Dies ist wichtig für Skins, die außerhalb der Grenzen des Video-Players erscheinen. Informationen zur Eigenschaft skinAutoHide finden Sie unter Ändern des Skinverhaltens .

In den FLA-Dateien von Flash wird „border_mc“ für den Farbhintergrund und für den Rahmen um die Schaltflächen „Forward“ (Vor) und „Back“ (Zurück) verwendet.

Der Clip „border_mc“ ist auch der Teil der Skin, dessen Alpha- und Farbwerte mit den Eigenschaften skinBackgroundAlpha und skinBackgroundColor geändert werden. Damit Farbe und Alphawert angepasst werden können, muss der ActionScript-Code in der FLA-Datei der Skin Folgendes enthalten:

border_mc.colorMe = true;

ActionScript und Skin-Layout

Der folgende ActionScript-Code gilt im Allgemeinen für alle Steuerelemente. Für einige Steuerelemente wird zusätzliches Verhalten durch besonderen ActionScript-Code definiert; dieser wird im Abschnitt für das jeweilige Steuerelement beschrieben.

Der ursprüngliche ActionScript-Code ist ein großer Abschnitt, der die Klassennamen für jeden Status der einzelnen Komponenten definiert. Diese Klassennamen werden in der Datei „SkinOverAll.fla“ aufgeführt. Für die Pause- und Abspielen-Schaltflächen sieht der Code zum Beispiel wie folgt aus:

this.pauseButtonDisabledState = "fl.video.skin.PauseButtonDisabled"; 
this.pauseButtonDownState = "fl.video.skin.PauseButtonDown"; 
this.pauseButtonNormalState = "fl.video.skin.PauseButtonNormal"; 
this.pauseButtonOverState = "fl.video.skin.PauseButtonOver"; 
this.playButtonDisabledState = "fl.video.skin.PlayButtonDisabled"; 
this.playButtonDownState = "fl.video.skin.PlayButtonDown"; 
this.playButtonNormalState = "fl.video.skin.PlayButtonNormal"; 
this.playButtonOverState = "fl.video.skin.PlayButtonOver";

Die Klassennamen haben keine externen Klassendateien; sie werden nur im Dialogfeld „Verknüpfung“ für alle Movieclips in der Bibliothek angegeben.

In der ActionScript 2.0-Komponente hat es sich um Movieclips auf der Bühne gehandelt, die zur Laufzeit verwendet wurden. In der ActionScript 3.0-Komponente befinden sich diese Movieclips zwar immer noch in der FLA-Datei, jedoch nur, damit die Bearbeitung bequemer ist. Sie befinden sich nun alle auf Pfadebenen und werden nicht exportiert. Alle Skin-Elemente in der Bibliothek sind für den Export in das erste Bild eingestellt und werden dynamisch erstellt, wie zum Beispiel mit dem folgenden Code:

new fl.video.skin.PauseButtonDisabled();

Auf diesen Abschnitt folgt ActionScript-Code, der die maximale Breite und Höhe für die Skin definiert. Im Dialogfeld „Skin auswählen“ werden diese Werte angezeigt. Zur Laufzeit werden sie verwendet, um zu verhindern, dass die Skin unter die Mindestgröße skaliert wird. Wenn Sie keine Mindestgröße festlegen möchten, lassen Sie den Wert undefiniert oder geben Sie einen Wert kleiner oder gleich null ein.

// minimum width and height of video recommended to use this skin, 
// leave as undefined or <= 0 if there is no minimum 
this.minWidth = 270; 
this.minHeight = 60;

Auf jeden Platzhalter können die folgenden Eigenschaften angewendet werden:

Eigenschaft

Beschreibung

anchorLeft

Boolean. Positioniert das Steuerelement relativ zur linken Seite der FLVPlayback-Instanz. Der Standardwert ist true , es sei denn, anchorRight wurde ausdrücklich auf true festgelegt – in diesem Fall ist der Standardwert false .

anchorRight

Boolean. Positioniert das Steuerelement relativ zur rechten Seite der FLVPlayback-Instanz. Der Standardwert ist false .

anchorBottom

Boolean. Positioniert das Steuerelement relativ zum unteren Rand der FLVPlayback-Instanz. Der Standardwert ist true , es sei denn, anchorTop wurde ausdrücklich auf true festgelegt – in diesem Fall ist der Standardwert false .

anchorTop

Boolean. Positioniert das Steuerelement relativ zum oberen Rand der FLVPlayback-Instanz. Der Standardwert ist false .

Wenn die Eigenschaften anchorLeft und anchorRight beide mit true belegt werden, wird das Steuerelement zur Laufzeit horizontal skaliert. Wenn die Eigenschaften anchorTop und anchorBottom beide mit true belegt werden, wird das Steuerelement zur Laufzeit vertikal skaliert.

Die Auswirkungen dieser Eigenschaften können Sie anhand der Flash-Skins erkennen. Nur die Steuerelemente BufferingBar und SeekBar werden skaliert. Sie befinden sich übereinander und die Eigenschaften anchorLeft und anchorRight wurden für beide Elemente jeweils auf true eingestellt. Alle Steuerelemente links von BufferingBar und SeekBar haben für die Eigenschaft anchorLeft den Wert true , für alle Steuerelemente auf der rechten Seite wurde anchorRight mit true belegt. Bei allen Steuerelementen wurde die Eigenschaft anchorBottom auf true eingestellt.

Sie können versuchen, den Movieclip „layout_mc“ auf der Layout-Ebene zu bearbeiten, um eine Skin zu erstellen, bei der sich die Steuerelemente nicht unten, sondern oben befinden. Dazu müssen Sie die Steuerelemente nur nach oben (relativ zu video_mc ) verschieben und die Eigenschaft anchorTop für alle Elemente auf true einstellen.

Zwischenspeichern-Leiste

Die Zwischenspeichern-Leiste hat zwei Movieclips: bufferingBar_mc und bufferingBarFill_mc. Die Position der beiden Clips auf der Bühne in Relation zu den anderen Clips ist wichtig, da diese relative Positionierung beibehalten wird. Die Zwischenspeichern-Leiste benötigt zwei verschiedene Clips, da die Komponente „bufferingBar_mc“ skaliert, nicht jedoch „bufferingBarFill_mc“.

Auf den Movieclip „bufferingBar_mc“ wird die Skalierung im 9-teiligen Segmentraster angewendet, der Rahmen wird beim Skalieren also nicht verzerrt. Der Movieclip „bufferingBarFill_mc“ ist besonders breit, damit er auch ohne Skalierung immer breit genug ist. Er wird zur Laufzeit automatisch maskiert, sodass nur der Bereich über dem gestreckten Clip „bufferingBar_mc“ sichtbar ist. Standardmäßig sind die genauen Abmessungen der Maske so eingestellt, dass innerhalb von „bufferingBar_mc“ der gleiche Randabstand auf der linken und rechten Seite beibehalten wird, basierend auf der Differenz zwischen den horizontalen Positionen ( x ) von „bufferingBar_mc“ und „bufferingBarFill_mc“. Sie können die Positionierung mithilfe von ActionScript-Code anpassen.

Wenn Ihre Zwischenspeichern-Leiste nicht skaliert werden muss oder nicht die Skalierung im 9-teiligen Segmentraster verwendet, können Sie sie einrichten wie die FLV Playback Custom UI-Komponente BufferingBar. Weitere Informationen finden Sie unter BufferingBar-Komponente .

Die Zwischenspeichern-Leiste verfügt über die folgende zusätzliche Eigenschaft:

Eigenschaft

Beschreibung

fill_mc:MovieClip

Gibt den Instanznamen der Füllung für die Zwischenspeichern-Leiste an. Der Standardwert lautet „bufferingBarFill_mc“.

Vor-/Rücklaufleiste und Lautstärkeleiste

Die Vor-/Rücklaufleiste hat ebenfalls zwei Movieclips: seekBar_mc und seekBarProgess_mc. Die Position der beiden Clips auf der Layout-Ebene in Relation zu den anderen Clips ist wichtig, da diese relative Positionierung beibehalten wird. Zwar werden beide Clips skaliert, der Clip „seekBarProgess_mc“ kann jedoch nicht in „seekBar_mc“ verschachtelt sein, da „seekBar_mc“ die Skalierung im 9-teiligen Segmentraster verwendet, die mit verschachtelten Movieclips nicht gut funktioniert.

Auf den Movieclip „seekBar_mc“ wird die Skalierung im 9-teiligen Segmentraster angewendet, der Rahmen wird beim Skalieren also nicht verzerrt. Der Clip „seekBarProgess_mc“ wird ebenfalls skaliert, dabei treten aber Verzerrungen auf. Die Skalierung im 9-teiligen Segmentraster wird nicht angewendet, da es sich bei diesem Clip um eine Füllung handelt, die auch bei Verzerrungen korrekt aussieht.

Der Clip „seekBarProgess_mc“ funktioniert ohne einen Clip „fill_mc“, ähnlich wie ein Movieclip „progress_mc“ in den FLV Playback Custom UI-Komponenten. Anders ausgedrückt: Der Clip wird nicht maskiert und wird horizontal skaliert. Die genauen Abmessungen des Clips „seekBarProgress_mc“ bei 100 % werden durch die linken und rechten Randabstände im Clip „seekBarProgress_mc“ definiert. Diese Abmessungen sind standardmäßig gleich und basieren auf der Differenz zwischen den horizontalen Positionen ( x ) der Clips „seekBar_mc“ und „seekBarProgress_mc“. Sie können die Abmessungen mithilfe von ActionScript-Code im Movieclip für die Vor-/Rücklaufleiste individuell anpassen, wie im folgenden Beispiel gezeigt:

this.seekBar_mc.progressLeftMargin = 2; 
this.seekBar_mc.progressRightMargin = 2; 
this.seekBar_mc.progressY = 11; 
this.seekBar_mc.fullnessLeftMargin = 2; 
this.seekBar_mc.fullnessRightMargin = 2; 
this.seekBar_mc.fullnessY = 11;

Sie können diesen Code entweder auf der Zeitleiste des SeekBar-Movieclips oder zusammen mit dem übrigen ActionScript-Code auf der Hauptzeitleiste platzieren. Wenn Sie die Anpassung mit Code anstatt durch Bearbeiten des Layouts vornehmen, muss sich die Füllung nicht auf der Bühne befinden. Sie muss nur in der Bibliothek vorhanden sein und für den Export in ActionScript in Bild 1 mit dem korrekten Klassennamen eingestellt sein.

Wie bei der FLV Playback Custom UI-Komponente SeekBar können Sie einen Füllungs-Movieclip für die Vor-/Rücklaufleiste erstellen. Falls Ihre Vor-/Rücklaufleiste nicht skaliert werden muss, oder falls sie skaliert wird, aber nicht mit der Skalierung im 9-teiligen Segmentraster, könnten Sie den Clip „progress_mc“ oder „fullness_mc“ mit beliebigen Methoden der FLV Playback Custom UI-Komponenten einrichten. Weitere Informationen finden Sie unter Movieclips für Fortschritt und Füllung .

Da die Lautstärkeleiste in den Flash-Skins nicht skaliert wird, ist sie genau wie die FLV Playback Custom UI-Komponente „VolumeBar“ aufgebaut. Weitere Informationen finden Sie unter SeekBar- und VolumeBar-Komponenten . Eine Ausnahme ist der Griff, der auf andere Weise implementiert wird.

SeekBar- und VolumeBar-Griffe

Die SeekBar- und VolumeBar-Griffe werden auf der Layout-Ebene neben der Leiste platziert. Standardmäßig werden der linke Randabstand, der rechte Randabstand und die y -Achsen-Werte durch ihre Position relativ zum Leisten-Movieclip festgelegt. Der linke Randabstand wird durch die Differenz zwischen den horizontalen Positionen ( x ) des Griffs und der Leiste festgelegt; der rechte Randabstand entspricht dem linken Randabstand. Sie können diese Werte mithilfe von ActionScript-Code im SeekBar- oder VolumeBar-Movieclip individuell anpassen. Im folgenden Beispiel wird derselbe ActionScript-Code wie für die FLV Playback Custom UI-Komponenten verwendet:

this.seekBar_mc.handleLeftMargin = 2; 
this.seekBar_mc.handleRightMargin = 2; 
this.seekBar_mc.handleY = 11;

Sie können diesen Code entweder auf der Zeitleiste des SeekBar-Movieclips oder zusammen mit dem übrigen ActionScript-Code auf der Hauptzeitleiste platzieren. Wenn Sie die Anpassung mit Code anstatt durch Bearbeiten des Layouts vornehmen, muss sich die Griffkomponente nicht auf der Bühne befinden. Sie muss nur in der Bibliothek vorhanden sein und für den Export in ActionScript in Bild 1 mit dem korrekten Klassennamen eingestellt sein.

Abgesehen von diesen Eigenschaften handelt es sich bei den Griffen um einfache Movieclips, die genau wie in den FLV Playback Custom UI-Komponenten eingerichtet werden. Beide verfügen über einen rechteckigen Hintergrund, dessen Eigenschaft alpha den Wert 0 hat. Dieser Hintergrund vergrößert lediglich den Kollisionsbereich und ist nicht erforderlich.

Hintergrund- und Vordergrund-Clips

Die Movieclips „chrome_mc“ und „forwardBackBorder_mc“ werden als Hintergrund-Clips implementiert.

Von den Movieclips ForwardBackBorder, ForwardBorder und BackBorder auf der Bühne und den Platzhalter-Schaltflächen Forward und Back befindet sich lediglich ForwardBackBorder nicht auf einer Pfadebene. Dieser Movieclip befindet sich nur in Skins, die die Forward- und Back-Schaltflächen tatsächlich verwenden.

Die einzige Anforderung für diese Clips ist, dass sie in der Bibliothek für ActionScript in Bild 1 exportiert werden müssen.