Die Stile einer Komponente definieren im Allgemeinen Werte für die Skins, Symbole, Textformatierung und Auffüllung, die Flash zum Zeichnen der Komponente in verschiedenen Zuständen verwendet. Beispielsweise zeichnet Flash eine Schaltfläche im Down-Status (also wenn ein Benutzer auf die Schaltfläche klickt) mit einer anderen Skin als im Up- oder Normal-Status. Eine andere Skin wird auch für den deaktivierten Zustand verwendet, der auftritt, wenn die
enabled
-Eigenschaft auf
false
gesetzt wird.
Stile für Komponenten können auf verschiedenen Ebenen festgelegt werden: Dokument, Klasse und Instanz. Außerdem können einige Stileigenschaften von einer übergeordneten Komponente übernommen werden. So übernimmt die List-Komponente beispielsweise ScrollBar-Stile von BaseScrollPane.
Sie können Stile festlegen, um eine Komponente wie folgt anzupassen:
-
Festlegen von Stilen für eine Komponenteninstanz. Sie können die Farb- und Texteigenschaften für eine einzelne Komponenteninstanz ändern. Dies ist in einigen Situationen hilfreich, kann jedoch auch zeitintensiv sein, wenn Sie einzelne Eigenschaften für alle Komponenten in einem Dokument festlegen müssen.
-
Festlegen von Stilen für alle Komponenten eines bestimmten Typs in einem Dokument. Wenn alle Komponenten eines bestimmten Typs, wie beispielsweise Kontrollkästchen und Schaltflächen, im Dokument ein einheitliches Erscheinungsbild aufweisen sollen, können Sie Stile auf der Komponentenebene festlegen.
Die für Container festgelegten Stileigenschaften werden von den enthaltenen Komponenten übernommen.
Bei der Live-Vorschau von Komponenten auf der Bühne werden Änderungen an Stileigenschaften in Flash nicht angezeigt.
Hintergrundinformationen zu Stileinstellungen
Bei der Verwendung von Stilen sollten Sie die folgenden wichtigen Aspekte berücksichtigen:
-
Vererbung
-
Eine untergeordnete Komponente übernimmt standardmäßig einen Stil von der übergeordneten Komponente. Die Vererbung von Stilen kann nicht in ActionScript festgelegt werden.
-
Vorrang
-
Wenn ein Stil einer Komponente auf mehrere Arten festgelegt wurde, verwendet Flash den ersten Stil in der Reihenfolge des Vorrangs. Flash sucht in der folgenden Reihenfolge nach Stilen, bis ein Wert gefunden wird:
-
Flash sucht nach einer Stileigenschaft in der Komponenteninstanz.
-
Wenn es sich um einen Vererbungsstil handelt, durchsucht Flash die übergeordnete Hierarchie nach einem übernommenen Wert.
-
Flash sucht in der Komponente nach dem Stil.
-
Flash sucht nach einer globalen StyleManager-Einstellung.
-
Wenn die Eigenschaft immer noch nicht definiert ist, lautet der Eigenschaftswert
undefined
.
Zugriff auf die Standardstile einer Komponente
Zum Zugriff auf die Standardstile einer Komponente können Sie die statische
getStyleDefinition()
-Methode für die Komponentenklasse verwenden. Mit dem folgenden Code werden zum Beispiel die Standardstile für die ComboBox-Komponente abgerufen und die Standardwerte für die Eigenschaften
buttonWidth
und
downArrowDownSkin
angezeigt:
import fl.controls.ComboBox;
var styleObj:Object = ComboBox.getStyleDefinition();
trace(styleObj.buttonWidth); // 24
trace(styleObj.downArrowDownSkin); // ScrollArrowDown_downSkin
Festlegen und Abrufen von Stilen für eine Komponenteninstanz
Jede UI-Komponenteninstanz kann die Methoden
setStyle()
und
getStyle()
direkt aufrufen, um einen Stil festzulegen oder abzurufen. Die folgende Syntax legt einen Stil und einen Wert für eine Komponenteninstanz fest:
instanceName.setStyle("styleName", value);
Die folgende Syntax ruft einen Stil einer Komponenteninstanz ab:
var a_style:Object = new Object();
a_style = instanceName.getStyle("styleName");
Beachten Sie, dass die
getStyle()
-Methode das type-Objekt zurückgibt, da es mehrere Stile mit unterschiedlichen Datentypen zurückgeben kann. Mit dem folgenden Code wird beispielsweise der Schriftstil für die TextArea-Instanz (
aTa
) festgelegt und dann mit der
getStyle()
-Methode abgerufen. In diesem Beispiel wird der zurückgegebene Wert in ein TextFormat-Objekt umgewandelt, das einer TextFormat-Variable zugewiesen wird. Ohne diese Umwandlung würde bei der Kompilierung ein Fehler ausgegeben, da versucht würde, eine Object-Variable einer TextFormat-Variablen zuzuweisen.
import flash.text.TextFormat;
var tf:TextFormat = new TextFormat();
tf.font = "Georgia";
aTa.setStyle("textFormat",tf);
aTa.text = "Hello World!";
var aStyle:TextFormat = aTa.getStyle("textFormat") as TextFormat;
trace(aStyle.font);
Festlegen von Texteigenschaften mithilfe von TextFormat
Mit dem TextFormat-Objekt können Sie den Text für eine Komponenteninstanz formatieren. Mit den Eigenschaften des TextFormat-Objekts können Sie verschiedene Textmerkmale festlegen, wie beispielsweise
bold
,
bullet
,
color
,
font
,
italic
,
size
und so weiter. Sie können diese Eigenschaften im TextFormat-Objekt festlegen und dann die
setStyle()
-Methode aufrufen, um die Eigenschaften auf eine Komponenteninstanz anzuwenden. Mit dem folgenden Code werden beispielsweise die Eigenschaften
font
,
size
und
bold
eines TextFormat-Objekts festgelegt und auf eine Button-Instanz angewendet:
/* Create a new TextFormat object to set text formatting properties. */
var tf:TextFormat = new TextFormat();
tf.font = "Arial";
tf.size = 16;
tf.bold = true;
a_button.setStyle("textFormat", tf);
Die folgende Abbildung zeigt die Auswirkungen dieser Einstellungen auf eine Submit-Schaltfläche:
Stileigenschaften, die mit
setStyle()
für eine Komponenteninstanz festgelegt werden, haben die höchste Priorität und setzen alle anderen Stileinstellungen außer Kraft. Je mehr Eigenschaften Sie mithilfe von
setStyle()
für eine einzelne Komponenteninstanz festlegen, desto langsamer wird die Komponente zur Laufzeit dargestellt.
Festlegen eines Stils für alle Instanzen einer Komponente
Mit der statischen
setComponentStyle()
-Methode der StyleManager-Klasse können Sie einen Stil für alle Instanzen einer Komponentenklasse festlegen. So können Sie zum Beispiel die Textfarbe für alle Schaltflächen auf Rot einstellen, indem Sie zuerst eine Button-Komponente auf die Bühne ziehen und dann im Bedienfeld „Aktionen“ in Bild 1 der Zeitleiste den folgenden ActionScript-Code hinzufügen:
import fl.managers.StyleManager;
import fl.controls.Button;
var tf:TextFormat = new TextFormat();
tf.color = 0xFF0000;
StyleManager.setComponentStyle(Button, "textFormat", tf);
Alle Schaltflächen, die Sie der Bühne anschließend hinzufügen, haben rote Bezeichnungen.
Festlegen eines Stils für alle Komponenten
Mit der statischen
setStyle()
-Methode der StyleManager-Klasse können Sie einen Stil für alle Komponenten festlegen.
-
Ziehen Sie eine List-Komponente auf die Bühne und geben Sie ihr den Instanznamen
aList
.
-
Ziehen Sie eine Button-Komponente auf die Bühne und geben Sie ihr den Instanznamen
aButton
.
-
Drücken Sie
F9
oder wählen Sie „Fenster“ > „Aktionen“, um das Bedienfeld „Aktionen“ zu öffnen, falls es nicht bereits angezeigt wird. Geben Sie den folgenden Code in Bild 1 der Zeitleiste ein, um die Textfarbe für alle Komponenten auf Rot einzustellen:
import fl.managers.StyleManager;
var tf:TextFormat = new TextFormat();
tf.color = 0xFF0000;
StyleManager.setStyle("textFormat", tf);
-
Fügen Sie im Bedienfeld „Aktionen“ den folgenden Code ein, um die Liste mit Text zu versehen:
aList.addItem({label:"1956 Chevy (Cherry Red)", data:35000});
aList.addItem({label:"1966 Mustang (Classic)", data:27000});
aList.addItem({label:"1976 Volvo (Xcllnt Cond)", data:17000});
aList.allowMultipleSelection = true;
-
Wählen Sie „Steuerung“ > „Film testen“ oder drücken Sie Strg+Eingabe, um den Code zu kompilieren und den Inhalt zu testen. Der Text der Schaltflächenbezeichnung und in der Liste sollte rot sein.
|
|
|