Pakket | flash.text |
Klasse | public dynamic class StyleSheet |
Overerving | StyleSheet EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wanneer u stijlen op een object TextField wilt toepassen, wijst u het object StyleSheet toe aan de eigenschap styleSheet
van een object TextField.
Opmerking: een tekstveld met een stijlpagina kan niet worden bewerkt. Met andere woorden, een tekstveld met de eigenschap type
die op TextFieldType.INPUT
is ingesteld, past de stijlpaginaopmaak toe op de standaardtekst voor het tekstveld. De inhoud kan dan door de gebruiker echter niet meer worden bewerkt. U kunt ook de klasse TextFormat gebruiken om stijlen toe te passen op invoertekstvelden.
Flash Player ondersteunt een subset eigenschappen in de oorspronkelijke CSS1-specificatie (www.w3.org/TR/REC-CSS1). De volgende tabel bevat de ondersteunde CSS-eigenschappen (Cascading Style Sheet) en waarden plus de overeenkomstige eigenschapnamen in ActionScript. (Elke eigenschapnaam in ActionScript is afgeleid van de overeenkomstige CSS-eigenschapnaam: wanneer de naam een koppelteken bevat, wordt het koppelteken weggelaten en krijgt het eerstvolgende teken een hoofdletter.)
CSS-eigenschap | ActionScript-eigenschap | Gebruik en ondersteunde waarden |
---|---|---|
kleur
|
kleur
| Alleen hexadecimale kleurwaarden worden ondersteund. Kleurnamen (zoals blue ) worden niet ondersteund. Kleuren worden geschreven in de volgende notatie: #FF0000 . |
display
|
display
| Ondersteunde waarden zijn inline , block en none . |
font-family
|
fontFamily
| Een door komma's gescheiden lijst met te gebruiken lettertypen, in aflopende volgorde van wenselijkheid. Een willekeurige lettertypefamilienaam kan worden gebruikt. Wanneer u een generieke lettertypenaam opgeeft, wordt deze omgezet in een geschikt apparaatlettertype. De volgende lettertypeconversies zijn beschikbaar: mono wordt omgezet in _typewriter , sans-serif wordt omgezet in _sans en serif wordt omgezet in _serif . |
font-size
|
fontSize
| Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
font-style
|
fontStyle
| Herkende waarden zijn normal en italic . |
font-weight
|
fontWeight
| Herkende waarden zijn normal en bold . |
kerning
|
kerning
| Herkende waarden zijn true en false . Tekenspatiëring wordt alleen ondersteund voor ingesloten lettertypen. Bepaalde lettertypen, zoals Courier New, ondersteunen tekenspatiëring niet. De eigenschap voor tekenspatiëring wordt alleen ondersteund in SWF-bestanden die zijn gemaakt in Windows, niet in SWF-bestanden die zijn gemaakt op de Mac. Deze SWF-bestanden kunnen echter wel met tekenspatiëring worden afgespeeld in andere versies dan de Windows-versie van Flash Player. |
leading
|
leading
| De hoeveelheid ruimte die gelijkmatig tussen regels wordt verdeeld. Met de waarde wordt opgegeven hoeveel pixels na elke regel worden toegevoegd. Bij een negatieve waarde wordt de ruimte tussen regels verkleind. Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
letter-spacing
|
letterSpacing
| De hoeveelheid ruimte die gelijkmatig tussen tekens wordt verdeeld. Met de waarde wordt opgegeven hoeveel pixels na elk teken worden toegevoegd. Bij een negatieve waarde wordt de ruimte tussen tekens verkleind. Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
margin-left
|
marginLeft
| Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
margin-right
|
marginRight
| Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
text-align
|
textAlign
| Herkende waarden zijn left , center , right en justify . |
text-decoration
|
textDecoration
| Herkende waarden zijn none en underline . |
text-indent
|
textIndent
| Alleen het numerieke deel van de waarde wordt gebruikt. Eenheden (px, pt) worden niet geparseerd; pixels en punten zijn gelijkwaardig. |
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
styleNames : Array [alleen-lezen]
Een array die de namen (en tekenreeksen) van alle stijlen bevat die in deze stijlpagina zijn geregistreerd. | StyleSheet |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een nieuw object StyleSheet. | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Hiermee worden alle stijlen uit het stijlpaginaobject verwijderd. | StyleSheet | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Retourneert een kopie van het stijlobject dat aan de stijl styleName is gekoppeld. | StyleSheet | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Hiermee wordt de CSS in CSSText geparseerd en in de stijlpagina geladen. | StyleSheet | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Hiermee wordt een nieuwe stijl met de opgegeven naam aan het stijlpaginaobject toegevoegd. | StyleSheet | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Hiermee worden de mogelijkheden voor CSS-parsering uitgebreid. | StyleSheet | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
styleNames | eigenschap |
StyleSheet | () | Constructor |
public function StyleSheet()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt een nieuw object StyleSheet.
Verwante API-elementen
clear | () | methode |
public function clear():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee worden alle stijlen uit het stijlpaginaobject verwijderd.
getStyle | () | methode |
public function getStyle(styleName:String):Object
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een kopie van het stijlobject dat aan de stijl styleName
is gekoppeld. Wanneer er geen object style is dat aan styleName
is gekoppeld, wordt null
geretourneerd.
Parameters
styleName:String — Een tekenreeks waarmee de naam wordt opgegeven van de stijl die moet worden opgehaald.
|
Object — Een object.
|
Verwante API-elementen
Voorbeeld
Hoe dit voorbeeld te gebruiken
Zie het voorbeeld van de methode parseCSS() of transform() voor een toelichting op het gebruik van de methode
getStyle()
.
parseCSS | () | methode |
public function parseCSS(CSSText:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt de CSS in CSSText
geparseerd en in de stijlpagina geladen. Wanneer een stijl in CSSText
al in styleSheet
staat, blijven de eigenschappen instyleSheet
behouden en worden alleen de eigenschappen in CSSText
toegevoegd of gewijzigd in styleSheet
.
Om de native capaciteit voor CSS-parsering uit te breiden, kunt u deze methode overschrijven door een subklasse van de klasse StyleSheet te maken.
Parameters
CSSText:String — De CSS-tekst die moet worden geparseerd (een tekenreeks).
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
In de constructor wordt een tekstveld met meerdere regels gemaakt en wordt de inhoud ervan ingesteld op een tekenreeks met HTML-opmaak. (De HTML-regelafstand en bereiktags worden pas gerenderd wanneer CSS-stijl is toegepast.) Er wordt een object URLRequest
gemaakt om de locatie van het CSS-bestand te bepalen; dit kan bijvoorbeeld dezelfde map zijn als het SWF-bestand. Het bestand wordt geladen met een object URLLoader
. Er worden twee gebeurtenislisteners toegevoegd voor het URLLoader-object loader
. Wanneer een I/O-fout optreedt, wordt de methode errorHandler()
aangeroepen, waarna een foutbericht in het tekstveld wordt weergegeven. Nadat alle gegevens zijn ontvangen en in de eigenschap data van het URLLoader-object loader
zijn geplaatst, wordt de methode loaderCompleteHandler()
aangeroepen. Deze methode parseert de CSS-stijlen van de gegevens die uit het bestand zijn geladen en plaatst de stijldefinities in het StyleSheet-object sheet
.
Wanneer de gebruiker op het tekstveld klikt, wordt de methode clickHandler()
aangeroepen. De instructie if in de methode clickHandler()
controleert of het laden van het bestand was voltooid voordat de stijlpagina op het tekstveld wordt toegepast. De stijlpagina is pas van kracht nadat de eigenschap htmlText
opnieuw is toegewezen aan de inhoud nadat de stijlpagina aan het tekstveld is toegewezen. De CSS-eigenschappen font-family
en color
voor de tag heading worden ook toegevoegd aan de inhoud van het tekstveld. (De waarden van deze eigenschappen zijn 'undefined' wanneer stijlpaginawaarden niet van kracht zijn.)
Hierna volgt een voorbeeld van inhoud van het CSS-bestand dat bij dit voorbeeld kan worden gebruikt. Voordat u dit voorbeeld uitvoert, moet u een tekstbestand maken, de volgende CSS-inhoud daarin kopiëren, het bestand opslaan met de bestandsnaam test.css
en vervolgens in dezelfde map plaatsen als het SWF-bestand.
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
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een nieuwe stijl met de opgegeven naam aan het stijlpaginaobject toegevoegd. Wanneer nog geen stijl met deze naam bestaat op de stijlpagina, wordt deze toegevoegd. Wanneer al een stijl met deze naam bestaat op de stijlpagina, wordt deze vervangen. Wanneer de parameter styleObject
null
is, wordt de benoemde stijl verwijderd.
In Flash Player wordt een kopie gemaakt van het stijlobject dat u doorgeeft aan deze methode.
Zie de tabel in de beschrijving van de klasse StyleSheet voor een lijst met ondersteunde stijlen.
Parameters
styleName:String — Een tekenreeks waarmee de naam wordt opgegeven van de stijl die moet worden toegevoegd aan de stijlpagina.
| |
styleObject:Object — Een object dat de stijl beschrijft of null .
|
transform | () | methode |
public function transform(formatObject:Object):flash.text:TextFormat
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee worden de mogelijkheden voor CSS-parsering uitgebreid. Gevorderde ontwikkelaars kunnen deze methode overschrijven door de klasse StyleSheet uit te breiden.
Parameters
formatObject:Object — Een object dat de stijl beschrijft, die stijlregels bevat als eigenschappen van het object of null .
|
flash.text:TextFormat — Een object TextFormat dat het resultaat van de toewijzing van CSS-regels aan tekstopmaakeigenschappen bevat.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
transform()
gebruikt om een stijl uit een CSS-bestand toe te passen op een object TextFormat voor een tekstveld.
CSS-stijlen worden meestal gebruikt voor de opmaak van HTML-inhoud. Door de methode transform()
van een object StyleSheet te gebruiken, kunnen bepaalde CSS-stijlen echter worden toegewezen aan een object TextFormat en vervolgens worden toegepast op elk tekstveld.
De objecten URLRequest
en URLLoader
worden gebruikt om het CSS-bestand te laden. Er wordt een gebeurtenislistener voor de gebeurtenis Event.COMPLETE
toegevoegd, die optreedt zodra alle gegevens zijn ontvangen en in de eigenschap data van het URLLoader-object loader
zijn geplaatst. De methode loaderCompleteHandler()
parseert de CSS vervolgens vanuit de geladen gegevens voor het bestand en vult het StyleSheet-object sheet
met de stijlen. De methode getStyle()
van de stijlpagina ontvangt de HTML-alineastijlen, die vervolgens aan het TextFormat-object cssFormat
worden toegewezen met de methode transform()
van de stijlpagina. Ten slotte wordt de standaardtekstopmaak van het tekstveld inputField
ingesteld op de nieuwe tekstopmaak 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); } } }
Wed Jun 13 2018, 11:42 AM Z