Tekstvelden kunnen platte tekst of tekst met HTML-opmaak bevatten. Platte tekst wordt opgeslagen in de eigenschap
text
van de instantie en HTML-tekst in de eigenschap
htmlText
.
U kunt CSS-stijldeclaraties gebruiken om tekststijlen te definiëren die u kunt toepassen op veel verschillende tekstvelden. CSS-stijldeclaraties kunnen worden gemaakt in de toepassingscode of bij het uitvoeren worden geladen vanuit een extern CSS-bestand.
De klasse flash.text.StyleSheet behandelt de CSS-stijlen. De klasse StyleSheet herkent een beperkte set CSS-eigenschappen. Zie de vermelding over flash.textStylesheet in de Naslaggids voor ActionScript® 3.0 voor Adobe® Flash® Professional CS5 voor een gedetailleerde lijst stijleigenschappen die door de klasse StyleSheet worden ondersteund.
Zoals het volgende voorbeeld aangeeft, kunt u CSS maken in uw code en die stijlen toepassen op HTML-tekst door gebruik te maken van een StyleSheet-object:
var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();
styleObj.fontSize = "bold";
styleObj.color = "#FF0000";
style.setStyle(".darkRed", styleObj);
var tf:TextField = new TextField();
tf.styleSheet = style;
tf.htmlText = "<span class = 'darkRed'>Red</span> apple";
addChild(tf);
Wanneer u een StyleSheet-object hebt gemaakt, maakt de voorbeeldcode een eenvoudig object dat een set stijldeclaratie-eigenschappen bevat. Vervolgens wordt de methode
StyleSheet.setStyle()
aangeroepen, waarmee de nieuw stijl wordt toegevoegd aan het opmaakmodel met de naam “.darkred”. Vervolgens wordt de opmaakmodelopmaak toegepast door het StyleSheet-object toe te wijzen aan de tekstveldeigenschap
styleSheet
.
CSS-stijlen werken pas wanneer het opmaakmodel wordt toegepast op het TextField-object voordat de eigenschap
htmlText
wordt ingesteld.
Een tekstveld met een opmaakmodel kan niet worden bewerkt. Als u een invoertekstveld hebt en hieraan een opmaakmodel toewijst, vertoont het tekstveld de eigenschappen van het opmaakmodel, maar staat het tekstveld niet toe dat gebruikers hierin nieuwe tekst invoeren. U kunt ook de volgende ActionScript-API's niet gebruiken op een tekstveld met een hieraan toegewezen opmaakmodel:
-
De methode
TextField.replaceText()
-
De methode
TextField.replaceSelectedText()
-
De eigenschap
TextField.defaultTextFormat
-
De methode
TextField.setTextFormat()
Als aan een tekstveld een opmaakmodel is toegewezen, maar de eigenschap
TextField.styleSheet
later wordt ingesteld op
null
, voegt de inhoud van zowel de eigenschap
TextField.text
als
TextField.htmlText
tags en kenmerken toe aan de inhoud, om de opmaak uit het eerder toegewezen opmaakmodel op te nemen. Als u de oorspronkelijke eigenschap
htmlText
wilt behouden, slaat u deze op in een variabele, voordat u het opmaakmodel instelt op
null
.