Textfält kan innehålla oformaterad text eller HTML-formaterad text. Oformaterad text lagras i egenskapen
text
för instansen och HTML-text lagras i egenskapen
htmlText
.
Du kan använda CSS formatdeklarationer när du vill definiera textformat som kan användas på flera olika textfält. CSS-formatdeklarationer kan skapas i programkoden eller läsas in vid körningstillfället från en extern CSS-fil.
Klassen flash.text.StyleSheet hanterar CSS-format. Klassen StyleSheet identifierar en begränsad uppsättning av CSS-egenskaper. En utförlig lista över de formategenskaper som klassen StyleSheet har stöd för finns i avsnittet om flash.textStylesheet i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen.
Som exemplet nedan visar, kan du skapa CSS i koden och tillämpa formaten för HTML-text genom att använda ett StyleSheet-objekt:
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);
I exempelkoden skapas ett enkelt objekt som lagrar en uppsättning formatdeklarationsegenskaper efter det att du skapat ett StyleSheet-objekt. Sedan anropas metoden
StyleSheet.setStyle()
som lägger till den nya formateringen i formatmallen med namnet ”.darkred”. Formateringen i formatmallen används genom att objektet StyleSheet tilldelas TextField-egenskapen
styleSheet
.
För att CSS-format ska aktiveras bör formatmallen tillämpas på TextField-objektet innan egenskapen
htmlText
anges.
Ett textfält med en formatmall kan inte redigeras. Om du har ett textinmatningsfält och tilldelar det en formatmall, visar textfältet formatmallens egenskaper, men användare kan inte skriva ny text i textfältet. Du kan inte heller använda följande ActionScript API:er på ett textfält som tilldelats en formatmall:
-
Metoden
TextField.replaceText()
-
Metoden
TextField.replaceSelectedText()
-
Egenskapen
TextField.defaultTextFormat
-
Metoden
TextField.setTextFormat()
Om ett textfält har en formatmall tilldelad och egenskapen
TextField.styleSheet
ställs in på
null
, kommer innehållet i egenskaperna
TextField.text
och
TextField.htmlText
att lägga till taggar och attribut i innehållet för att inkludera formateringen från den tilldelade formatmallen. För att bevara den ursprungliga
htmlText
-egenskapen, ska du spara den som en variabel innan formatmallen ställs in på
null
.