2012-07-06 76 views
1

我正在進行一項練習,其中的孩子必須將文本框拖到正確的框中。 該文本字段包含我從XML加載的單詞。 當他們將文本框放在正確的框中時,我想更改文本框中文本部分的顏色。 這通常必須是特定的字母/字母組合。如何使用actionscript更改單詞部分的顏色?

例如:他們必須瞭解eee之間的差異。如果他們在正確的方框中放置帶有「十」字的文本框,我希望「t」和「n」保持黑色,而「e」需要變爲藍色。 但是,如果他們在正確的方框中放下「tween」一詞,則字母「ee」需要變成藍色。

我一直在設置一個字符串的一部分的textFormat玩弄,但我似乎無法得到這個工作。這也很難,因爲這兩個選項(e和ee)的字符數量不同。 但我沒有得到任何地方。

tldr; 我想改變文本的一部分的顏色在文本框

回答

0

,我得出的結論改變的部分的顏色的最佳方法一個詞就是使用Stylesheet類。我從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); 
0

若要更改列使用HTML中間的某些字符顏色: http://cartoonsmartblog.wordpress.com/2009/08/28/coloring-html-text-in-flash-actionscript-3-quick-code-note/

(順便說一句只使用單引號和雙引號的而不是\ u0022醜)

+0

我看到這是如何工作的,只有我動態加載我的文本字段。那麼,如何定位需要更改的字符串部分,以及如何知道需要更改的字符串長度? – silvith 2012-07-06 14:50:52

+1

regex,string.search(),string.match(),string.index()等 – jhocking 2012-07-06 14:53:03

+0

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/String.html – jhocking 2012-07-06 14:53:39

2

如何:

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

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

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