如何使用actionscript更改单词部分的颜色?

时间:2012-07-06 14:44:14

标签: actionscript-3 flash-cs5 string-formatting

我正在进行一项练习,孩子们必须将文本字段拖到正确的方框中。 文本字段包含我从xml加载的单词。 当他们将文本字段放在正确的框中时,我想更改文本字段中文本的一部分的颜色。 这必须是特定的字母/字母组合。

例如:他们必须了解 e ee 之间的区别。如果他们在正确的框中删除带有“十”字样的文本字段,我希望“t”和“n”保持黑色,而“e”需要变为蓝色。 但如果他们在正确的方框中删除“补间”这个词,则字母“ee”需要变成蓝色。

我一直在设置textFormat作为字符串的一部分,但我似乎无法使其正常工作。这也很难,因为两个选项(e和ee)的字符数不同。 但我没有到达任何地方。

tldr; 我想更改文本字段中文本部分的颜色

3 个答案:

答案 0 :(得分:2)

怎么样:

//setup a textformat
var textFormat:TextFormat = new TextFormat();

var startIndex:int = someString.indexOf("e");

textField.setTextFormat(textFormat,startIndex,startIndex+1);

答案 1 :(得分:0)

要更改字符串中间某些字符的颜色,请使用html: http://cartoonsmartblog.wordpress.com/2009/08/28/coloring-html-text-in-flash-actionscript-3-quick-code-note/

(顺便说一下,只使用单引号和双引号代替那个丑陋)

答案 2 :(得分:0)

我得出的结论是,更改单词部分颜色的最佳方法是使用样式表类。我从Stackoverflow上的某个人那里拿了下面的片段,但是我忘了注意它是谁。对不起,无论你是谁。

var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();

styleObj.fontSize = "bold";
styleObj.color = "#FF0000";

style.setStyle(".red",styleObj);

var tf:TextField = new TextField(); 

tf.styleSheet = style;
tf.htmlText = "fox is <span class='red'>red</span>";


addChild(tf);