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

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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 eine Untergruppe 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
colorcolorEs werden nur hexadezimale Farbwerte unterstützt. Benannte Farben (wie blue) werden nicht unterstützt. Farben werden im folgenden Format geschrieben: #FF0000.
displaydisplayUnterstützte Werte sind inline, block und none.
font-familyfontFamilyEine 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-sizefontSize Nur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
font-stylefontStyleDie Werte normal und italic werden erkannt.
font-weightfontWeightDie Werte normal und bold werden erkannt.
kerningkerningDie Werte true und false werden erkannt. Die Unterschneidung wird nur für eingebettete Schriftarten unterstützt. Gewisse Schriftarten wie beispielsweise Courier New unterstützen die Unterschneidung nicht. Die Unterschneidungs-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. Die Unterschneidung bleibt hierbei erhalten.
leadingleadingDer 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-spacingletterSpacingDer 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-leftmarginLeftNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
margin-rightmarginRightNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.
text-aligntextAlignDie Werte left, center, right und justify werden erkannt.
text-decorationtextDecorationDie Werte none und underline werden erkannt.
text-indenttextIndentNur der numerische Teil des Werts wird verwendet. Einheiten (px, pt) werden nicht geparst; Pixel und Punkte sind gleichwertig.

Beispiele anzeigen

Siehe auch

flash.text.TextField


Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
  styleNames : Array
[read-only] 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
  
getStyle(styleName:String):Object
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
  
parseCSS(CSSText:String):void
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 das angegebene Objekt als String zurück.
Object
  
transform(formatObject:Object):TextFormat
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 vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
Eigenschaftsdetail
styleNamesEigenschaft
styleNames:Array  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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


Implementierung
    public function get styleNames():Array
Konstruktordetail
StyleSheet()Konstruktor
public function StyleSheet()

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein neues StyleSheet-Objekt.

Siehe auch

Methodendetail
clear()Methode
public function clear():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Entfernt sämtliche Stile aus dem StyleSheet-Objekt.

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

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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.

Siehe auch


Beispiel
Verwendung von Beispielen
Die Verwendung der Methode getStyle() wird im Beispiel für die Methode parseCSS() oder transform() veranschaulicht.
parseCSS()Methode 
public function parseCSS(CSSText:String):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

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. (Beachten Sie, dass die HTML-Tags "heading" und "span" nicht dargestellt werden, bevor der CSS-Stil angewendet wird.) Es wird ein URLRequest-Objekt erstellt, um den Speicherort der CSS-Datei anzugeben, die sich in diesem Beispiel im selben Verzeichnis wie die SWF-Datei befindet. 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 die data-Eigenschaft des URLLoader-Objekts loader platziert wurden, wird die loaderCompleteHandler()-Methode aufgerufen, die die CCS-Stile von den aus der Datei geladenen Daten parst und damit das StyleSheet-Objekt sheet füllt.

Wenn der Benutzer auf das Textfeld klickt, wird die Methode clickHandler() 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
Player-Version : Flash Player 9

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):TextFormat

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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
TextFormat — Ein TextFormat-Objekt, das das Ergebnis der Zuordnung von CSS-Regeln zu Textformateigenschaften enthält.

Siehe auch


Beispiel

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;
        }
    }
}
Beispiele Verwendung von Beispielen
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);
        }
    }
}




 

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

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/text/StyleSheet.html