0

我使用 flex 4 和动作脚本 3 为 android 设备创建了一个简单的文本聊天应用程序。在文本聊天中,我提供了更改字体颜色的选项。我使用“TextInput”输入文本消息,使用“Textarea”显示聊天消息。当我改变文本的颜色时,“textarea”颜色中的所有行都在改变。

textoutput.setStyle("color",textInput.getStyle("color"));
textoutput.text += userNameInput.text + ": " + msg + "\n";"

这是我使用的代码。但我需要更改“textarea”中每一行的颜色。另一方面,我创建了用于显示聊天的面板,并为消息动态创建了标签,并且动态地更改了颜色,但所有行都合并在同一行中。我需要为面板窗口中的每个动态标签添加换行符。

var mylabel:Label=new Label();
mylabel.setStyle("color",textInput.getStyle("color"));
mylabel.text += userNameInput.text + ": " + msg +      "\n";
        panelId.addElement(mylabel);"

这是我用于将动态标签添加到 Panel 中的代码。任何人都可以建议我解决这个问题的任何一个想法,这对我来说应该非常有帮助。提前致谢。

4

1 回答 1

0

以下是一些可能有用的信息,来自http://help.adobe.com/en_US/as3/dev/WS8d7bb3e8da6fb92f-20050207122bd5f80cb-7ff5.html

格式化文本字段中的文本范围

flash.text.TextField 类的一个有用方法是 setTextFormat() 方法。使用 setTextFormat(),您可以为文本字段的一部分内容分配特定属性以响应用户输入,例如需要提醒用户某些条目是必需的或更改段落小节的重点的表单当用户选择部分文本时,文本字段中的文本数量。

以下示例在用户单击文本字段时对一系列字符使用 TextField.setTextFormat() 来更改 myTextField 部分内容的外观:

var myTextField:TextField = new TextField(); 
myTextField.text = "No matter where you click on this text field the TEXT IN ALL CAPS changes format."; 
myTextField.autoSize = TextFieldAutoSize.LEFT; 
addChild(myTextField); 
addEventListener(MouseEvent.CLICK, changeText); 
var myformat:TextFormat = new TextFormat(); 
myformat.color = 0xFF0000; 
myformat.size = 18; 
myformat.underline = true; 

function changeText(event:MouseEvent):void 
{ 

 myTextField.setTextFormat(myformat, 49, 65); 
}
于 2012-05-28T08:37:33.183 回答