如何将StyleSheet应用于具有纯文本的TextField

时间:2014-03-25 11:09:01

标签: css actionscript-3 flash textfield

是否可以将StyleSheet格式应用于仅通过texthtmlText属性设置纯文本的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"的样式。文档表明它应该是,但我不能让它工作。

感谢。

1 个答案:

答案 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设置其字体属性。请改用defaultTextFormatsetTextFormat()