我做了一个简单的聊天应用程序,但我有这个问题,文本区域将填满,用户将必须清除它..我怎么能这样做,如果文本区域达到一定数量的字符,它将清除旧的聊天文字?
public function receiveMsg(userName:String,type:String,msg:String,txtColor:String):void{
if(type == "user"){
ConsoleTxt.htmlText += "<b>"+userName+"</b>: <font color='"+txtColor+"'>"+msg+"</font> \n"
}
if(type == "server"){
ConsoleTxt.htmlText += "<b><font color='#6ade57'>SERVER</font></b> "+userName+" "+msg+"\n"
}
if(type == "disconnect"){
ConsoleTxt.htmlText += "<b><font color='#6ade57'>SERVER</font></b> "+userName+" <font color='#fc0000'>"+msg+"</font>\n"
}
ConsoleTxt.verticalScrollPosition = ConsoleTxt.maxVerticalScrollPosition
}
答案 0 :(得分:0)
在我看来,你应该研究多少行&amp;不是textarea中的字符。
类似的东西:
textarea.addEventListener(Event.CHANGE, changeHandler);
var maxLines = 5;
function changeHandler(event:Event):void {
if(textarea.numLines > maxLines)
textarea.text = textarea.text.substring(textarea.getLineLength(0));
}
应确保textarea中最多有5行,否则最旧的行将被删除。
答案 1 :(得分:0)
对于遇到相同问题的任何人,修复了将所有数据设置为数组集合的问题。
private var chatHolder:Array = new Array();
public function receiveMsg(userName:String,type:String,msg:String,txtColor:String):void{
for(var i:int = 0;i < chatHolder.length;i ++){
if(i > 4){
chatHolder.shift();
}
}
if(type == "user"){
chatHolder.push("<b><a href='event:"+userName+"'>"+userName+"</a></b>: <font color='"+txtColor+"'>"+msg+"</font> \n")
}
}