我如何使用<或者>在actionscript中的htmlText里面?

时间:2015-11-27 21:13:12

标签: flash flex actionscript

我正在使用字体标记来设置Flex组件中TextArea内部文本的颜色。如果html标签之间的文本具有<或者>然后它会破坏文本并且不会渲染。

以下是我正在尝试做的一个例子。

var textValue:String = "<some text>";
var myText:String = "<font color='#eeeeee'>" +  textValue + "</font>"
var textArea:TextArea = new TextArea();
textArea.htmlText = myText;

我尝试在Actionscript中使用escape(textValue);函数,但所有这一切都是对&lt; &GT;进入html值,它不会在HTML文本中显示它们。

我想知道是否有办法逃脱&lt; &GT;这样html就会呈现它。

1 个答案:

答案 0 :(得分:0)

感谢来自@ s9tpepper和@mike_robbo在twitter上的一些建议,我实际上能够使用以下代码按照flash HTML喜欢的方式对字符进行编码。

        /**
         * Encode HTML.
         */
        public static function htmlEncode(s:String):String
        {
            s = s.replace("&", "&amp;");
            s = s.replace(" ", "&nbsp;");
            s = s.replace("<", "&lt;");
            s = s.replace(">", "&gt;");
            s = s.replace("™", '&trade;');
            s = s.replace("®", '&reg;');
            s = s.replace("©", '&copy;');
            s = s.replace("€", "&euro;");
            s = s.replace("£", "&pound;");
            s = s.replace("—", "&mdash;");
            s = s.replace("–", "&ndash;");
            s = s.replace("…", "&hellip;");
            s = s.replace("†", "&dagger;");
            s = s.replace("·", "&middot;");
            s = s.replace("µ", "&micro;");
            s = s.replace("«", "&laquo;");
            s = s.replace("»", "&raquo;");
            s = s.replace("•", "&bull;");
            s = s.replace("°", "&deg;");
            s = s.replace('"', "&quot;");
            return s;
        }