文字欄位可以包含純文字或 HTML 格式文字。純文字儲存於實體的
text
屬性中,而 HTML 文字儲存於
htmlText
屬性中。
您可以使用 CSS 樣式宣告,來定義可以套用至多個不同文字欄位的文字樣式。CSS 樣式宣告可以透過您的應用程式碼來建立,或是在執行時期從外部 CSS 檔載入。
flash.text.StyleSheet 類別可處理 CSS 樣式。StyleSheet 類別可辨識的 CSS 屬性集合有限。如需 StyleSheet 類別所支援樣式屬性的詳細清單,請參閱「Adobe® Flash® Professional CS5 的 ActionScript® 3.0 參考」中的 flash.textStylesheet 項目。
如下例所示,您可以透過您的程式碼來建立 CSS,並使用 StyleSheet 物件將這些樣式套用至 HTML 文字:
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);
建立 StyleSheet 物件之後,此範例程式碼會建立簡單物件來保留一組樣式宣告屬性。然後,它會呼叫
StyleSheet.setStyle()
方法,將新樣式新增至名稱為「.darkred」的樣式表。接著,它會將 StyleSheet 物件指定給 TextField
styleSheet
屬性,以套用樣式表格式。
若要讓 CSS 樣式生效,您必須先將樣式表套用至 TextField 物件,然後才能設定
htmlText
屬性。
依據設計,您無法編輯含有様式表的文字欄位。如果您擁有輸入文字欄位,並在其中指定様式表,則文字欄位會顯示様式表的屬性,但是文字欄位不允許使用者在其中輸入新的文字。而且,您無法在含有指定様式表的文字欄位中使用下列 ActionScript API:
-
TextField.replaceText()
方法
-
TextField.replaceSelectedText()
方法
-
TextField.defaultTextFormat
屬性
-
TextField.setTextFormat()
方法
如果文字欄位已指定樣式表,但之後將
TextField.styleSheet
屬性設為
null
,則
TextField.text
和
TextField.htmlText
屬性的內容會將標籤和特質新增至其內容,以併入先前指定的樣式表格式。若要保留原始
htmlText
屬性,請先將它儲存至變數,然後再將樣式表設為
null
。