2

簡単なチャット アプリケーションを作成しましたが、この問題があり、テキスト領域がいっぱいになり、ユーザーはそれをクリアする必要があります。テキスト領域が特定の文字数に達すると、古いチャットがクリアされるようにするにはどうすればよいですか文章 ?

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
        }
4

2 に答える 2

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")
            }
}
于 2012-12-08T11:18:04.110 に答える
0

私の意見では、テキストエリアの文字ではなく、行数で作業する必要があります。

何かのようなもの :

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

テキストエリアに常に最大 5 行あることを確認する必要があります。そうでない場合、最も古い行が削除されます。

于 2012-12-02T07:30:16.520 に答える