是否可以将StyleSheet格式应用于仅通过text
或htmlText
属性设置纯文本的Flash TextField?在TextField#styleSheet
属性的文档中,给出了此示例:
public class TextStylesheetExample extends Sprite {
var myLabel:TextField = new TextField();
var labelText:String = "Hello world.";
var newStyle:StyleSheet = new StyleSheet();
public function TextStylesheetExample()
{
var styleObj:Object = new Object();
styleObj.fontWeight = "bold";
styleObj.color = "#660066";
newStyle.setStyle(".defStyle", styleObj);
myLabel.styleSheet=newStyle;
myLabel.htmlText=labelText;
addChild(myLabel);
}
}
当我在Flash Player 12 / AIR 4中运行此代码时,我只看到未格式化的文本。如果将代码更改为
,我会看到一些结果var labelText:String = "<p>Hello world.</p>";
...
newStyle.setStyle("p", styleObj);
即,当选择器开始播放时,它开始工作。但是,在我的用例中,我只是没有任何格式标签的纯文本,我想知道是否可以使用StyleSheet对象设置类似text="Hello World"
的样式。文档表明它应该是,但我不能让它工作。
感谢。
答案 0 :(得分:1)
在TextField
中,非HTML文本实际上放在一组段落标记中。作为一个实验:
var tf:TextField = new TextField();
tf.text = "hello world";
trace(tf.htmlText);
跟踪输出将是:
<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">hello world</FONT></P>
因为有一个嵌套的FONT元素&#34;硬编码&#34;样式信息,原始问题的答案是否,纯文本TextFields不能使用StyleSheet设置其字体属性。请改用defaultTextFormat
或setTextFormat()
。