テキストフィールドには、プレーンテキストまたは HTML 形式のテキストを含めることができます。 プレーンテキストはインスタンスの
text
プロパティに格納し、HTML テキストは
htmlText
プロパティに格納します。
CSS スタイル宣言を使用すると、多数の異なるテキストフィールドに適用できるテキストスタイルを定義することができます。 CSS スタイル宣言は、アプリケーションコード内で作成することも、実行時に外部 CSS ファイルからロードすることもできます。
CSS スタイルの処理には flash.text.StyleSheet クラスを使用します。 StyleSheet クラスでは、一部の CSS プロパティに限り認識されます。 StyleSheet クラスでサポートされるスタイルプロパティの詳細な一覧については、『ActionScript 3.0 リファレンス』の flash.textStylesheet の項を参照してください。
次の例に示すように、StyleSheet オブジェクトを使用してコードで CSS を作成し、作成したスタイルを 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 スタイルを有効にするには、
htmlText
プロパティが設定される前に、TextField オブジェクトにスタイルシートを適用する必要があります。
設計上、スタイルシートを含むテキストフィールドは編集できません。 入力テキストフィールドがあり、スタイルシートが割り当てられている場合、テキストフィールドにはスタイルシートのプロパティが表示されますが、ユーザーはテキストフィールドに新しいテキストを入力することはできません。また、スタイルシートが割り当てられたテキストフィールドで、次の ActionScript API を使用することはできません。
-
TextField.replaceText()
メソッド
-
TextField.replaceSelectedText()
メソッド
-
TextField.defaultTextFormat
プロパティ
-
TextField.setTextFormat()
メソッド
テキストフィールドにスタイルシートが割り当てられている場合に、後で
TextField.styleSheet
プロパティを
null
に設定すると、
TextField.text
プロパティと
TextField.htmlText
プロパティの両方のコンテンツがタグと属性をそれぞれのコンテンツに追加し、以前に割り当てられたスタイルシートのフォーマットを組み込みます。元の
htmlText
プロパティを維持するには、スタイルシートを
null
に設定する前に、このプロパティを変数に保存します。