Просмотр полной версии : Окно с автоскроллингом для чата
mikhailk
29.04.2010, 12:05
Честно говоря, задача проходная и тратить время на глубокое изучение вопроса просто лень.
Окно чата - динамическое текстовое поле произвольной высоты и ширины, новые сообщения поступают так:
chatWindow.text = chatWindow.text + incomingMessage + "\n"
Нужно, чтобы сначала сообщения добавлялись начиная с верха окна, а потом, когда окно заполнится, весь текст должен смещаться вверх, чтоб последнее сообщение всегда было на виду. Сообщение может занимать несколько строк, но не все окно чата.
Psycho Tiger
29.04.2010, 12:31
chatWindow.text = incomingMessage + "\n" + chatWindow.text;
mickfallout
29.04.2010, 12:50
chatWindow.text = incomingMessage + "\n" + chatWindow.text;
сообщения будут вниз смещаться.
package {
import flash.display.*
import flash.events.*
import flash.text.TextField;
public class Main extends Sprite {
private var tf:TextField = new TextField();
public function Main()
{
super();
addChild(tf);
var i:int = 0;
while(i++<20)
add("("+i+")");
}
private function add(str:String):void
{
tf.appendText(str+'\n');
tf.scrollV = tf.maxScrollV;
}
}
}
а так вверх.
mikhailk
29.04.2010, 12:53
Нет, как смещать вниз я и сам догадался :)
Ок, второй вариант попробую.
Zebestov
29.04.2010, 14:19
chatWindow.text = chatWindow.text + incomingMessage + "\n"
как-то раз я попытался сделать именно так, как ты тут написал =) вежливый Flash IDE порекомендовал мне увеличить скорость работы пользуя метод appendText() вместо этой конструкции.
mickfallout
29.04.2010, 14:26
chatWindow.text = chatWindow.text + incomingMessage + "\n"
как-то раз я попытался сделать именно так, как ты тут написал =) вежливый Flash IDE порекомендовал мне увеличить скорость работы пользуя метод appendText() вместо этой конструкции.
FD не менее вежлив =)
Warning: Appending text to a TextField using += is many times slower than using the TextField.appendText() method.
Zebestov
29.04.2010, 14:28
хм. а может это он и был =)
Psycho Tiger
29.04.2010, 20:53
А где вы там += увидели, в моём коде?
Перечитал что хотел автор. Ошибся, думал что он хочет чтобы новое сообщение было вверху.
Тьфу. У меня совсем крыша едет.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.