2012-01-04 25 views
11

Có thể có hai màu văn bản trong một trường văn bản bằng cách sử dụng Actionscript 3.0 không?Hai màu trong một trường văn bản bằng cách sử dụng Actionscript 3

ví dụ: làm cách nào để tạo chuỗi màu đen đầu tiên và chuỗi thứ hai màu đỏ?

Đây là mã của tôi khi sử dụng một màu duy nhất:

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); 
    } 

Trả lời

16

Trong setTextFormat bạn có thể chỉ bắt đầu chỉ số và chỉ số cuối. Bạn cũng có thể hiển thị văn bản dưới dạng html bằng cách sử dụng textLog.htmlText.

Đầu tiên thiết lập các văn bản

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

Sau đó, phương pháp 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); 

Hoặc phương pháp 2

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

làm cách nào tôi có thể làm điều đó? bạn muốn đưa ra một ví dụ? –

+0

Tôi đã sửa đổi câu trả lời bằng mẫu. Hãy kiểm tra. Hãy nhớ rằng bạn cần áp dụng định dạng sau khi đặt văn bản. – Diode

+0

Vui lòng sử dụng thuộc tính '.length' của chuỗi để đặt chỉ mục nếu bạn không muốn mã cứng. – Diode

0

Nếu bạn muốn làm như vậy, bạn cần phải tạo ra một chức năng để kiểm soát . charAt (DEFINE INDEX CỦA STRING TẠI ĐÂY).

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);} 
Các vấn đề liên quan