2012-01-04 34 views
11

使用Actionscript 3.0可以在一個文本字段中使用兩種文本顏色嗎?使用Actionscript 3的一個文本字段中的兩種顏色3

例如:我怎麼能像第一個字符串黑色和第二個字符串紅色?

下面是一個使用單一的顏色,當我的代碼:

public function logs(txt) 
    { 
     if (txt == '') 
     { 
      textLog.text = "Let's Open up our treasure boxes !!!"; 
     } 
     else 
     { 
      textLog.text = '' + txt + ''; 
     } 
     textLog.x = 38.60; 
     textLog.y = 60.45; 
     textLog.width = 354.50; 
     textLog.height = 31.35; 
     textLog.selectable = false; 
     textLog.border = false; 
     var format:TextFormat = new TextFormat(); 
     var myFont:Font = new Font1(); 
     format.color = 0x000000; 
     format.font = myFont.fontName; 
     format.size = 18; 
     format.align = TextFormatAlign.CENTER; 
     format.bold = false; 
     textLog.embedFonts = true; 
     textLog.setTextFormat(format); 
     this.addChild(textLog); 
    } 

回答

16

setTextFormat您可以指定開始索引和結束索引。您還可以使用textLog.htmlText將文本呈現爲html。

首先設置文本

var t:TextField = new TextField(); 
t.text = "BLUEGREEN"; 
addChild(t); 

然後方法1

var format1:TextFormat = t.getTextFormat(0, 4); 
format1.color = 0x0000ff; 
t.setTextFormat(format1, 0, 4); 


var format2:TextFormat = t.getTextFormat(5, t.length); 
format2.color = 0x00ff00; 
t.setTextFormat(format2, 5, t.length); 

或方法2

t.htmlText = '<font color="#0000ff">BLUE</font><font color="#00ff00">GREEN</font>'; 
+0

我該怎麼辦那個兄弟?你想舉個例子嗎? – 2012-01-04 03:25:51

+0

我修改了樣本的答案。請檢查。請記住,您需要在設置文本後應用格式。 – Diode 2012-01-04 04:43:20

+0

如果你不想硬編碼,請使用字符串的'.length'屬性來設置索引。 – Diode 2012-01-04 04:47:33

0

如果你想要做的那樣,你需要創建一個到控制功能。 charAt(定義字符串的索引)。

var format2:TextFormat = textbox.defaultTextFormat; 
    format2.color = 0x000000; 
    textbox.defaultTextFormat = format2; 

    if((textbox.text.charAt(3) == "d") && (textbox.text.charAt(4) == "i")){    
     var format1:TextFormat = textbox.defaultTextFormat; 
     format1.color = 0xFF0000; 
     textbox.setTextFormat(format1, 3, 5);} 
    else{ 
     textbox.setTextFormat(textbox.defaultTextFormat);} 
相關問題