Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Окно с автоскроллингом для чата (http://www.flasher.ru/forum/showthread.php?t=139369)

mikhailk 29.04.2010 12:05

Окно с автоскроллингом для чата
 
Честно говоря, задача проходная и тратить время на глубокое изучение вопроса просто лень.

Окно чата - динамическое текстовое поле произвольной высоты и ширины, новые сообщения поступают так:
Код AS3:

chatWindow.text = chatWindow.text + incomingMessage + "\n"

Нужно, чтобы сначала сообщения добавлялись начиная с верха окна, а потом, когда окно заполнится, весь текст должен смещаться вверх, чтоб последнее сообщение всегда было на виду. Сообщение может занимать несколько строк, но не все окно чата.

Psycho Tiger 29.04.2010 12:31

Код AS3:

chatWindow.text = incomingMessage + "\n" + chatWindow.text;


mickfallout 29.04.2010 12:50

Цитата:

Сообщение от Psycho Tiger (Сообщение 904716)
Код AS3:

chatWindow.text = incomingMessage + "\n" + chatWindow.text;


сообщения будут вниз смещаться.
Код AS3:

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

Код AS3:

chatWindow.text = chatWindow.text + incomingMessage + "\n"

как-то раз я попытался сделать именно так, как ты тут написал =) вежливый Flash IDE порекомендовал мне увеличить скорость работы пользуя метод appendText() вместо этой конструкции.

mickfallout 29.04.2010 14:26

Цитата:

Сообщение от Zebestov (Сообщение 904768)
Код AS3:

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

А где вы там += увидели, в моём коде?

Перечитал что хотел автор. Ошибся, думал что он хочет чтобы новое сообщение было вверху.

Тьфу. У меня совсем крыша едет.


Часовой пояс GMT +4, время: 10:34.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.