Paket | flash.text |
Klasse | public dynamic class StyleSheet |
Vererbung | StyleSheet EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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-Eigenschaft | ActionScript-Eigenschaft | Verwendung 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. |
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : 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 |
Methode | Definiert von | ||
---|---|---|---|
Erstellt ein neues StyleSheet-Objekt. | StyleSheet | ||
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 | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Gibt eine Kopie des Stilobjekts zurück, das mit dem Stil „styleName“ verknüpft ist. | StyleSheet | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
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 | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Fügt dem StyleSheet-Objekt einen neuen Stil mit dem angegebenen Namen hinzu. | StyleSheet | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Erweitert die CSS-Parsingfähigkeit. | StyleSheet | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
styleNames | Eigenschaft |
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
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.
|
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 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.
|
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 )
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; } } }
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); } } }
Tue Jun 12 2018, 10:04 AM Z