ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: AIR 30.0 und früher, Flash Player 30.0 und früher, Flash Lite 4
Flex 4.6 und früher, Flash Pro CS6 und früher
Filter ausblenden
flash.text 

StyleSheet  - AS3

Paketflash.text
Klassepublic dynamic class StyleSheet
VererbungStyleSheet Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Mit der StyleSheet-Klasse können Sie ein StyleSheet-Objekt erstellen, das Textformatierungsregeln für Schriftgröße und Farbe sowie für weitere Stile enthält. Anschließend können Sie durch ein Stylesheet definierte Stile auf ein TextField-Objekt anwenden, das HTML- oder XML-formatierten Text enthält. Der im TextField-Objekt enthaltene Text wird dann automatisch entsprechend den Tag-Stilen formatiert, die durch das StyleSheet-Objekt definiert sind. Sie können Textstile zum Definieren von Formatierungstags verwenden, integrierte HTML-Tags neu definieren oder Stilklassen erstellen, die auf bestimmte HTML-Tags angewendet werden.

Wenn Sie auf ein TextField-Objekt Stile anwenden möchten, weisen Sie das StyleSheet-Objekt der Eigenschaft styleSheet eines TextField-Objekts zu.

Hinweis: Ein Textfeld mit einem Stylesheet, das nicht bearbeitet werden kann. Mit anderen Worten: Ein Textfeld, bei dem die type-Eigenschaft auf TextFieldType.INPUT gesetzt ist, wendet das Stylesheet auf den Standardtext eines Textfelds an, aber der Inhalt kann vom Benutzer nicht mehr bearbeitet werden. Ziehen Sie es in Betracht, die TextFormat-Klasse für die Zuweisung von Stilen zu Eingabetextfeldern zu verwenden.

Flash Player unterstützt einen Teilsatz der Eigenschaften aus der ursprünglichen CSS1-Spezifikation (www.w3.org/TR/REC-CSS1). In der folgenden Tabelle finden Sie die unterstützten CSS-Eigenschaften (Cascading Style Sheet) und Werte sowie die entsprechenden ActionScript-Eigenschaftennamen. (Die Namen der einzelnen ActionScript-Eigenschaften werden von der entsprechenden Bezeichnung der CSS-Eigenschaften abgeleitet, wenn der Name einen Bindestrich enthält. Dabei fällt der Bindestrich weg, und das nachfolgende Zeichen wird groß geschrieben.)

CSS-EigenschaftActionScript-EigenschaftVerwendung und unterstützte Werte
color color Es werden nur hexadezimale Farbwerte unterstützt. Benannte Farben (wie blue) werden nicht unterstützt. Farben werden im folgenden Format geschrieben: #FF0000.
display display Unterstützte Werte sind inline, block und none.
font-family fontFamily Eine zu verwendende kommagetrennte Schriftenliste, in absteigender Reihenfolge der Präferenz. Es lassen sich beliebige Namen für die Schriftart verwenden. Wenn Sie eine generische Schriftartbezeichnung wählen, wird diese in eine entsprechende Geräteschriftart konvertiert. Die folgenden Schriftkonvertierungen stehen zur Verfügung: mono wird in _typewriter konvertiert, sans-serif in _sans und serif in _serif.
font-size fontSize Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
font-style fontStyle Die Werte normal und italic werden erkannt.
font-weight fontWeight Die Werte normal und bold sind gültig.
kerning kerning Die Werte true und false werden erkannt. Kerning wird nur für eingebettete Schriftarten unterstützt. Gewisse Schriftarten wie beispielsweise Courier New unterstützen Kerning nicht. Die Kerning-Eigenschaft wird nur in unter Windows erzeugten SWF-Dateien unterstützt, nicht jedoch in auf Macintosh-Systemen erzeugten SWF-Dateien. Diese SWF-Dateien können jedoch in Nicht-Windows-Versionen von Flash Player wiedergegeben werden. Das Kerning bleibt hierbei erhalten.
leading leading Der Platz, der gleichmäßig zwischen den Zeilen aufgeteilt wird. Der Wert gibt an, wie viele Pixel Leerraum hinter jeder Zeile einzufügen sind. Bei einem negativen Wert wird der Platz zwischen den Zeilen verkleinert. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
letter-spacing letterSpacing Der Platz, der gleichmäßig zwischen den Zeichen aufgeteilt wird. Der Wert gibt an, wie viele Pixel Leerraum hinter jedem Zeichen einzufügen sind. Bei einem negativen Wert wird der Platz zwischen den Zeichen verkleinert. Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
margin-left marginLeft Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
margin-right marginRight Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
text-align textAlign Die Werte left, center, right und justify werden erkannt.
text-decoration textDecoration Die Werte none und underline werden erkannt.
text-indent textIndent Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  styleNames : Array
[schreibgeschützt] Ein Array, das die Namen aller in diesem Stylesheet registrierten Stile als Strings enthält.
StyleSheet
Öffentliche Methoden
 MethodeDefiniert von
  
Erstellt ein neues StyleSheet-Objekt.
StyleSheet
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
Entfernt sämtliche Stile aus dem StyleSheet-Objekt.
StyleSheet
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
  
Gibt eine Kopie des Stilobjekts zurück, das mit dem Stil „styleName“ verknüpft ist.
StyleSheet
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
  
Parst die CSS-Datei in CSSText und lädt gleichzeitig das Stylesheet.
StyleSheet
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
setStyle(styleName:String, styleObject:Object):void
Fügt dem StyleSheet-Objekt einen neuen Stil mit dem angegebenen Namen hinzu.
StyleSheet
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
  
Erweitert die CSS-Parsingfähigkeit.
StyleSheet
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
Eigenschaftendetails

styleNames

Eigenschaft
styleNames:Array  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Ein Array, das die Namen aller in diesem Stylesheet registrierten Stile als Strings enthält.



Implementierung
    public function get styleNames():Array
Konstruktordetails

StyleSheet

()Konstruktor
public function StyleSheet()

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Erstellt ein neues StyleSheet-Objekt.

Verwandte API-Elemente

Methodendetails

clear

()Methode
public function clear():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Entfernt sämtliche Stile aus dem StyleSheet-Objekt.

getStyle

()Methode 
public function getStyle(styleName:String):Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Gibt eine Kopie des Stilobjekts zurück, das mit dem Stil styleName verknüpft ist. Wenn kein Stilobjekt mit styleName verknüpft ist, wird null zurückgegeben.

Parameter

styleName:String — Ein String, der den Namen des abzurufenden Stils angibt.

Rückgabewerte
Object — Ein Objekt.

Verwandte API-Elemente


Beispiel
Verwendung dieses Beispiels
Die Verwendung der Methode getStyle() wird im Beispiel für die parseCSS()- oder transform()-Methode veranschaulicht.

parseCSS

()Methode 
public function parseCSS(CSSText:String):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Parst die CSS-Datei in CSSText und lädt gleichzeitig das Stylesheet. Wenn sich ein Stil in CSSText bereits im styleSheet-Objekt befindet, behält dieses seine styleSheet-Eigenschaften bei, und nur die Eigenschaften in CSSText werden dem styleSheet hinzugefügt oder geändert.

Wenn Sie die native CSS-Parsingfähigkeit erweitern möchten, können Sie diese Methode übersteuern, indem Sie eine Unterklasse der StyleSheet-Klasse erstellen.

Parameter

CSSText:String — Der zu parsende CSS-Text (ein String).


Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel werden beim Klicken auf das Textfeld aus einer Datei geladene CSS-Stile auf den Inhalt angewendet.

Im Konstruktor wird ein mehrzeiliges Textfeld erstellt, und der Inhalt wird auf einen HTML-formatierten String festgelegt. (Die HTML-Tags „heading“ und „span“ werden nicht dargestellt, bevor der CSS-Stil angewendet wird.) Es wird ein URLRequest-Objekt erstellt, um den Speicherort der CSS-Datei anzugeben. In diesem Beispiel befindet sie sich im selben Verzeichnis wie die SWF-Datei. Die Datei wird mit einem URLLoader-Objekt geladen. Zwei Ereignis-Listener werden für das URLLoader-Objekt loader hinzugefügt. Wenn ein IO-Fehler auftritt, wird die errorHandler()-Methode aufgerufen, die eine Fehlermeldung im Textfeld anzeigt. Nachdem alle Daten empfangen und in der Dateneigenschaft des loader-Objekts URLLoader platziert wurden, wird die loaderCompleteHandler()-Methode aufgerufen. Diese Methode parst dann die CSS-Stile aus den aus der Datei geladenen Daten und füllt das StyleSheet-Objekt sheet mit den Stildefinitionen.

Wenn der Benutzer auf das Textfeld klickt, wird die clickHandler()-Methode aufgerufen. Mit der if-Anweisung in der clickHandler()-Methode wird überprüft, ob der Dateiladevorgang abgeschlossen wurde, bevor das Stylesheet auf das Textfeld angewendet wird. Damit das Stylesheet wirksam wird, muss die htmlText-Eigenschaft dem Inhalt neu zugewiesen werden, nachdem das Stylesheet dem Textfeld zugewiesen wurde. Die Werte der CSS-Eigenschaft font-family und der color-Eigenschaft für das Heading-Tag werden ebenfalls dem Inhalt des Textfelds angehängt. (Die Werte dieser Eigenschaften sind „undefined“, wenn keine Stylesheet-Werte wirksam sind.)

Nachstehend finden Sie ein Beispiel für Inhalt einer CSS-Datei, die mit diesem Beispiel verwendet werden kann. Bevor Sie dieses Beispiel ausführen, erstellen Sie eine Textdatei, kopieren Sie den nachstehenden CSS-Inhalt in diese Datei, speichern Sie sie unter dem Dateinamen test.css und legen Sie sie im selben Verzeichnis wie die SWF-Datei ab.

   p {
      font-family: Times New Roman, Times, _serif;
      font-size: 14;
       font-Style: italic;
        margin-left: 10;  
   }
   h1 {
      font-family: Arial, Helvetica, _sans;
      font-size: 20;
      font-weight: bold;
   }
   .bluetext {
      color: #0000CC;
   }
 
package {
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.IOErrorEvent;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class StyleSheet_parseCSSExample extends Sprite {
        private var loader:URLLoader = new URLLoader();
        private var field:TextField = new TextField();
        private var exampleText:String = "<h1>This is a headline</h1>"
                    + "<p>This is a line of text. <span class='bluetext'>" 
                    + "This line of text is colored blue.</span></p>";
        private var sheet:StyleSheet = new StyleSheet();
        private var cssReady:Boolean = false;

        public function StyleSheet_parseCSSExample() {
            field.x = 10;
            field.y = 10;
            field.background = true;
            field.multiline = true;
            field.autoSize = TextFieldAutoSize.LEFT;
            field.htmlText = exampleText;

            field.addEventListener(MouseEvent.CLICK, clickHandler);
            
            addChild(field);
            
            var req:URLRequest = new URLRequest("test.css");
            loader.load(req);

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
        }

        public function errorHandler(e:IOErrorEvent):void {
            field.htmlText = "Couldn't load the style sheet file.";
        }

        public function loaderCompleteHandler(event:Event):void {
            sheet.parseCSS(loader.data);
            cssReady = true;
        }

        public function clickHandler(e:MouseEvent):void {

            if (cssReady) {
                field.styleSheet = sheet;
                field.htmlText = exampleText;
                
                var style:Object = sheet.getStyle("h1");
                field.htmlText += "<p>Headline font-family is: " + style.fontFamily + "</p>";
                field.htmlText += "<p>Headline color is: " + style.color + "</p>";  

            } else {
                field.htmlText = "Couldn't apply the CSS styles.";
            }
        }
    }
}

setStyle

()Methode 
public function setStyle(styleName:String, styleObject:Object):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Fügt dem StyleSheet-Objekt einen neuen Stil mit dem angegebenen Namen hinzu. Der benannte Stil wird hinzugefügt, wenn er nicht bereits im Stylesheet vorhanden ist. Der benannte Stil wird ersetzt, wenn er bereits im Stylesheet vorhanden ist. Wenn der styleObject-Parameter auf null gesetzt ist, wird der benannte Stil entfernt.

Flash Player erstellt eine Kopie des Stilobjekts, das dieser Methode übergeben wird.

Eine Liste der unterstützten Stile finden Sie in der Tabelle zur Beschreibung der StyleSheet-Klasse.

Parameter

styleName:String — Ein String, der den Namen des Stils angibt, der dem Stylesheet hinzugefügt werden soll.
 
styleObject:Object — Ein Objekt, das den Stil beschreibt (oder null).

transform

()Methode 
public function transform(formatObject:Object):flash.text:TextFormat

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Erweitert die CSS-Parsingfähigkeit. Erfahrene Entwickler können diese Methode durch Erweitern der StyleSheet-Klasse überschreiben.

Parameter

formatObject:Object — Ein Objekt, das den Stil beschreibt und das Stilregeln als Objekteigenschaften (bzw. null) enthält.

Rückgabewerte
flash.text:TextFormat — Ein TextFormat-Objekt, das das Ergebnis der Zuordnung von CSS-Regeln zu Textformateigenschaften enthält.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel wird mit der transform()-Methode ein Stil aus einer CSS-Datei auf ein TextFormat-Objekt für ein Textfeld angewendet.

CSS-Stile werden im Allgemeinen für die Formatierung von HTML-Inhalten verwendet. Mit der transform()-Methode eines StyleSheet-Objekts können bestimmte CSS-Stile jedoch einem TextFormat-Objekt zugewiesen und dann auf ein beliebiges Textfeld angewendet werden.

Die URLRequest- und URLLoader-Objekte werden zum Laden der CSS-Datei verwendet. Es wird ein Ereignis-Listener für das Event.COMPLETE-Ereignis hinzugefügt, das eintritt, nachdem alle Daten empfangen und in der data-Eigenschaft des URLLoader-Objekts loader platziert wurden. Die loaderCompleteHandler()-Methode parst dann den CSS aus den aus der Datei geladenen Daten und füllt das StyleSheet-Objekt sheet mit den Stilen. Die getStyle()-Methode des Stylesheets ruft die HTML-Absatzstile ab, die dann mit der transform()-Methode des Stylesheets dem TextFormat-Objekt cssFormat zugewiesen werden. Schließlich wird das Standardtextformat des Textfelds inputField auf das neue Textformat cssFormat gesetzt.

package {
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFieldType;
    import flash.events.IOErrorEvent;
    import flash.events.Event;

    public class StyleSheet_transformExample extends Sprite {
        private var loader:URLLoader = new URLLoader();
        private var inputField:TextField = new TextField();
        private var sheet:StyleSheet = new StyleSheet();

        public function StyleSheet_transformExample() {
            inputField.x = 10;
            inputField.y = 10;
            inputField.background = true;
            inputField.width = 300;
            inputField.height = 200;
            inputField.wordWrap = true;
            inputField.multiline = true;    
            inputField.type = TextFieldType.INPUT;

            addChild(inputField);
            
            var req:URLRequest = new URLRequest("test.css");
            loader.load(req);

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
        }

        public function errorHandler(e:IOErrorEvent):void {
            inputField.htmlText = "Couldn't load the style sheet file.";
        }

        public function loaderCompleteHandler(event:Event):void {
            var cssFormat:TextFormat = new TextFormat();
            sheet.parseCSS(loader.data);
            var style:Object = sheet.getStyle("p");
            cssFormat = sheet.transform(style);
            inputField.defaultTextFormat = cssFormat;
        }
    }
}
StyleSheetExample.as

Im folgenden Beispiel wird ein neues Stylesheet erstellt, und für die Überschrift wird ein Stil mit roter Schrift und Fettformatierung festgelegt.
 
package {
    import flash.display.Sprite;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;

    public class StyleSheetExample extends Sprite {

        public function StyleSheetExample() {
            var style:StyleSheet = new StyleSheet();

            var heading:Object = new Object();
            heading.fontWeight = "bold";
            heading.color = "#FF0000";

            var body:Object = new Object();
            body.fontStyle = "italic";

            style.setStyle(".heading", heading);
            style.setStyle("body", body);

            var label:TextField = new TextField();
            label.styleSheet = style;
            label.htmlText = "<body><span class='heading'>Hello </span>World...</body>";
            addChild(label);
        }
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.