在setTextFormat(AS3)方面需要帮助

时间:2011-08-25 21:34:25

标签: actionscript-3

我正在尝试使用Flash CS5.5创建一个rss阅读器。它几乎完成但我无法设置新闻标题。问题是文本字段的某些部分需要加粗和着色。这是我的代码:

var num:int = 0;
var tempText:String;
var titleStr:String;
var timeStr:String;
var descriptionStr: String;

function rssLoaded(evt:Event):void {
    rssXML = XML(rssLoader.data);
    // trace(rssXML);

    num = 0;
    for (var rssTitle:String in rssXML.channel.item) {

        // Set title
        tempText = rssXML.channel.item[rssTitle].title;
        tempText = tempText.slice(6);
        titleStr = tempText + "\r\n";

        // Set description
        tempText = rssXML.channel.item[num].description;
        // Detect if beginning with tags
        if ((tempText.charCodeAt(0) == 60) && (tempText.charCodeAt(1) == 73)) {
            tempText = tempText.slice(tempText.search("/>") + 2, tempText.search("<img"));
        } else {
            tempText = tempText.slice(0, 140);
        }
        // Detect if still contains tags
        if ((tempText.indexOf("<") != -1) || (tempText.indexOf(">") != -1)) {
            num++;
            continue;
        }
        // Detect if beginning with space
        for (var num2:int=0; tempText.charCodeAt(0) == 32  || tempText.charCodeAt(0) == 160; num2++) {
            tempText = tempText.slice(1);
        }
        descriptionStr = tempText + "...\r\n\r\n";

        main_txt.appendText(titleStr);

        main_txt.setTextFormat(title_tf, main_txt.text.length - titleStr.length, titleStr.length-2);

        main_txt.appendText(descriptionStr);
        num++;
    }
}

var title_tf:TextFormat=new TextFormat();
title_tf.bold=true;

当我测试代码时,我发现只有第一行是粗体,而所有标题都需要是粗体。抱歉我的英文。

此致

1 个答案:

答案 0 :(得分:0)

使用TextField.htmlText属性设置文本样式会更简单:

title_tf.htmlText = "<b>" + titleTextString + "</b><br/>" + bodyTextString;

这种方法也允许你使用这样的CSS:

title_tf.styleSheet = myImportedStyleSheet;
title_tf.htmlText = "<span class='titleClass'>" + titleTextString + "</span><br/><span class='bodyClass'>" + bodyTextString + "</span>";