我正在使用字体标记来设置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就会呈现它。
答案 0 :(得分:0)
感谢来自@ s9tpepper和@mike_robbo在twitter上的一些建议,我实际上能够使用以下代码按照flash HTML喜欢的方式对字符进行编码。
/**
* Encode HTML.
*/
public static function htmlEncode(s:String):String
{
s = s.replace("&", "&");
s = s.replace(" ", " ");
s = s.replace("<", "<");
s = s.replace(">", ">");
s = s.replace("™", '™');
s = s.replace("®", '®');
s = s.replace("©", '©');
s = s.replace("€", "€");
s = s.replace("£", "£");
s = s.replace("—", "—");
s = s.replace("–", "–");
s = s.replace("…", "…");
s = s.replace("†", "†");
s = s.replace("·", "·");
s = s.replace("µ", "µ");
s = s.replace("«", "«");
s = s.replace("»", "»");
s = s.replace("•", "•");
s = s.replace("°", "°");
s = s.replace('"', """);
return s;
}