Pakiet | flash.text |
Klasa | public dynamic class StyleSheet |
Dziedziczenie | StyleSheet EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Aby zastosować style do obiektu TextField, należy przypisać obiekt StyleSheet do właściwości styleSheet
obiektu TextField.
Uwaga: Nie można edytować pola tekstowego z arkuszem stylów. Innymi słowy, w polu tekstowym z właściwością type
ustawioną na wartość TextFieldType.INPUT
obiekt StyleSheet można stosować do tekstu domyślnego pola tekstowego, lecz jego zawartości użytkownik nie będzie mógł już edytować. W przypadku dodawania stylów do wejściowych pól tekstowych można zastosować klasę TextFormat.
Program Flash Player obsługuje podzbiór właściwości w pierwotnej specyfikacji CSS1 (www.w3.org/TR/REC-CSS1). Poniższa tabela przedstawia obsługiwane właściwości i wartości arkusza stylów kaskadowych (Cascading Style SHeet — CSS) oraz odpowiednie nazwy ich właściwości ActionScript. (Nazwa każdej właściwości ActionScript pochodzi od odpowiedniej nazwy właściwości CSS; jeśli nazwa zawiera znak myślnika, jest on pomijany, a następujący po nim znak jest pisany wielką literą).
Właściwość CSS | Właściwość ActionScript | Użycie i obsługiwane wartości |
---|---|---|
color
|
color
| Obsługiwane są tylko szesnastkowe wartości kolorów. Kolory określone nazwą (np. blue ) nie są obsługiwane. Kolory zapisuje się w następującym formacie: #FF0000 . |
display
|
display
| Wartości obsługiwane to inline , block oraz none
|
font-family
|
fontFamily
| Lista możliwych do użycia typów czcionek oddzielonych przecinkami w kolejności od najbardziej do najmniej odpowiedniej. Można użyć dowolnej nazwy rodziny czcionek. Określenie nazwy dla ogólnej czcionki spowoduje jej przekonwertowanie na właściwą nazwę czcionki urządzenia. Dostępne są następujące konwersje nazw czcionek: mono jest konwertowana do _typewriter , sans-serif jest konwertowana do _sans , a serif jest konwertowana do _serif . |
font-size
|
fontSize
| Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
font-style
|
fontStyle
| Rozpoznawane wartości to normal i italic . |
font-weight
|
fontWeight
| Rozpoznawane wartości to normal i bold . |
kerning
|
kerning
| Rozpoznawane wartości to true i false . Kerning jest obsługiwany tylko dla czcionek osadzonych. Niektóre czcionki, np. Courier New, nie obsługują kerningu. Właściwość kerning jest obsługiwana jedynie w plikach SWF utworzonych w systemie Windows, ale nie w plikach SWF utworzonych na komputerze Macintosh. Istnieje jednak możliwość odtworzenia plików SWF w wersjach programu Flash Player nieobsługiwanych przez system Windows z zastosowaniem właściwości kerning. |
leading
|
leading
| Wielkość odstępu równomiernie rozłożonego między wierszami. Wartość określa liczbę pikseli dodawanych po każdym wierszu. Wartość ujemna zmniejsza odstęp między wierszami. Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
letter-spacing
|
letterSpacing
| Wielkość odstępu równomiernie rozłożonego między znakami. Wartość określa liczbę pikseli dodawanych pod każdym znaku. Wartość ujemna zmniejsza odstęp między znakami. Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
margin-left
|
marginLeft
| Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
margin-right
|
marginRight
| Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
text-align
|
textAlign
| Rozpoznawane wartości to do lewej , do środka , do prawej oraz wyjustuj . |
text-decoration
|
textDecoration
| Rozpoznawane wartości to brak oraz podkreślenie . |
text-indent
|
textIndent
| Wykorzystuje się tylko numeryczną część wartości. Jednostki (px, pt) nie są przetwarzane; piksele i punkty są równoważne. |
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
styleNames : Array [tylko do odczytu]
Tablica z nazwami (ciągami znaków) wszystkich stylów zarejestrowanych w tym arkuszu stylów. | StyleSheet |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy nowy obiekt StyleSheet. | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Usuwa z obiektu arkusza stylów wszystkie style. | StyleSheet | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Zwraca kopię obiektu skojarzonego ze stylem o nazwie styleName. | StyleSheet | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Analizuje arkusz CSS określony przez parametr CSSText i ładuje arkusz stylów. | StyleSheet | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Dodaje do obiektu arkusza stylów nowy styl o określonej nazwie. | StyleSheet | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Rozszerza możliwości analizy CSS. | StyleSheet | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
styleNames | właściwość |
StyleSheet | () | Konstruktor |
public function StyleSheet()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy nowy obiekt StyleSheet.
Powiązane elementy interfejsu API
clear | () | metoda |
public function clear():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Usuwa z obiektu arkusza stylów wszystkie style.
getStyle | () | metoda |
public function getStyle(styleName:String):Object
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca kopię obiektu stylu powiązanego ze stylem o nazwie styleName
. Jeśli obiekt stylu powiązanego ze stylem styleName
nie istnieje, zwracana jest wartość null
.
Parametry
styleName:String — Ciąg znaków, który określa nazwę stylu do pobrania.
|
Object — Obiekt.
|
Powiązane elementy interfejsu API
Przykład
Sposób korzystania z tego przykładu
Sposób zastosowania metody
getStyle()
został przedstawiony w przykładach dotyczących metod parseCSS() i transform().
parseCSS | () | metoda |
public function parseCSS(CSSText:String):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Analizuje arkusz CSS określony przez parametr CSSText
i wczytuje arkusz stylów. Jeśli styl w obiekcie CSSText
istnieje już w arkuszu styleSheet
, właściwości w arkuszu styleSheet
są zachowane, a tylko te z obiektu CSSText
są dodawane lub zmieniane w arkuszu styleSheet
.
Aby zwiększyć możliwości w zakresie przetwarzania macierzystego arkusza CSS, można nadpisać tę metodę za pomocą podzbioru klasy StyleSheet.
Parametry
CSSText:String — Test arkusza CSS poddany analizie (ciąg znaków).
|
Przykład ( Sposób korzystania z tego przykładu )
W konstruktorze tworzone jest wielowierszowe pole tekstowe, a jego zawartość ustawiono na sformatowany ciąg znaków HTML. (Nagłówek HTML oraz znaczniki rozpiętości nie są renderowane przed zastosowaniem stylu CSS). W celu identyfikacji lokalizacji pliku CSS tworzony jest obiekt URLRequest
; na przykład plik CSS znajduje się w tym samym katalogu co plik SWF. Plik jest ładowany za pomocą obiektu URLLoader
. Do obiektu URLLoader loader
dodawane są dwa detektory zdarzeń. W przypadku wystąpienia błędu wejścia/wyjścia wywoływana jest metoda errorHandler()
, która wyświetla komunikat o błędzie w polu tekstowym. Po otrzymaniu i zapisaniu danych we właściwości data obiektu URLLoader loader
, następuje wywołanie metody loaderCompleteHandler()
. Ta metoda analizuje style CSS z danych załadowanych z pliku i zapełnia definicjami stylów obiekt StyleSheet sheet
.
Kliknięcie pola tekstowego powoduje wywołanie metody clickHandler()
. Wyrażenie if w metodzie clickHandler()
sprawdza, czy ładowanie pliku zostało zakończone, zanim arkusz stylów został zastosowany do pola tekstowego. Aby arkusz stylów został aktywowany, należy ponownie przypisać do zawartości właściwość htmlText
, po tym jak arkusz stylów został przypisany do pola tekstowego. Do zawartości pola tekstowego, dla znacznika nagłówka, zostają załączone również wartości właściwości font-family
oraz color
arkusza CSS. (Wartości dla tych właściwości pozostaną „niezdefiniowane”, jeśli wartości arkusza stylów nie będą aktywne).
Poniżej przedstawiono zawartość pliku CSS, którą można zastosować w tym przykładzie. Przed zastosowaniem tego przykładu należy utworzyć plik tekstowy, przekopiować do niego poniższą zawartość CSS, a następnie zapisać pod nazwą test.css
i umieścić w tym samym katalogu co plik SWF.
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 | () | metoda |
public function setStyle(styleName:String, styleObject:Object):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dodaje do obiektu arkusza stylów nowy styl o określonej nazwie. Jeśli w arkuszu stylów nazwany styl jeszcze nie istnieje, zostaje do niego dodany. Jeśli w arkuszu stylów nazwany styl już istnieje, zostaje on zastąpiony. Jeśli parametr styleObject
wskazuje wartość zero
, oznacza to, że nazwany styl został usunięty.
Program Flash Player tworzy kopie obiektu stylu, który zostanie przekazany tej metodzie.
Tabela w opisie klasy StyleSheet zawiera listę obsługiwanych stylów.
Parametry
styleName:String — Ciąg znaków, który określa nazwę stylu dodanego do arkusza stylów.
| |
styleObject:Object — Obiekt określający styl, lub wartość null .
|
transform | () | metoda |
public function transform(formatObject:Object):flash.text:TextFormat
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Rozszerza możliwości analizy CSS. Zaawansowani programiści mogą nadpisać tę metodę poprzez rozszerzenie klasy StyleSheet.
Parametry
formatObject:Object — Obiekt, który opisuje styl, zawiera reguły dla stylu jako właściwości obiektu, lub wartość zero .
|
flash.text:TextFormat — Obiekt TextFormat zawierający wyniki odwzorowania reguł CSS do właściwości formatu tekstowego.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
transform()
w celu zastosowania do obiektu TextFormat stylu z pliku CSS dla pola tekstowego.
Style CSS wykorzystuje się zwykle do formatowania zawartości HTML. Jednakże za pomocą metody transform()
obiektu StyleSheet konkretne style CSS można przypisać do obiektu TextFormat, a następnie zastosować je do dowolnego pola tekstowego.
Obiekty URLRequest
oraz URLLoader
wykorzystuje się do załadowania pliku CSS. Do zdarzenia Event.COMPLETE
zostaje dodany detektor zdarzeń, które pojawiają się po otrzymaniu i umieszczeniu wszystkich danych we właściwości data obiektu URLLoader loader
. Następnie za pomocą metody loaderCompleteHandler()
style CSS z danych załadowanych z pliku zostają poddane analizie w celu wypełnienia stylami obiektu StyleSheet sheet
. Metoda getStyle()
arkusza stylów pobiera styl akapitów HTML, które są następnie przypisywane do formatu cssFormat
obiektu TextFormat za pomocą metody transform()
arkusza stylów. Na końcu domyślnemu formatowi tekstowemu pola tekstowego inputField
zostaje przypisany nowy format tekstowy cssFormat
.
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, 12:06 PM Z