Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2010, 12:05
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 1  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Окно с автоскроллингом для чата

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

Окно чата - динамическое текстовое поле произвольной высоты и ширины, новые сообщения поступают так:
Код AS3:
chatWindow.text = chatWindow.text + incomingMessage + "\n"
Нужно, чтобы сначала сообщения добавлялись начиная с верха окна, а потом, когда окно заполнится, весь текст должен смещаться вверх, чтоб последнее сообщение всегда было на виду. Сообщение может занимать несколько строк, но не все окно чата.

Старый 29.04.2010, 12:31
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код AS3:
chatWindow.text = incomingMessage + "\n" + chatWindow.text;

Старый 29.04.2010, 12:50
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 3  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Код 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;
		}
	}
}
а так вверх.
__________________
Могу ошибаться... =)

Старый 29.04.2010, 12:53
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 4  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Нет, как смещать вниз я и сам догадался
Ок, второй вариант попробую.

Старый 29.04.2010, 14:19
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 5  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Код AS3:
chatWindow.text = chatWindow.text + incomingMessage + "\n"
как-то раз я попытался сделать именно так, как ты тут написал =) вежливый Flash IDE порекомендовал мне увеличить скорость работы пользуя метод appendText() вместо этой конструкции.
__________________
Поймай яблоко 2!

Старый 29.04.2010, 14:26
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 6  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Код 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.
__________________
Могу ошибаться... =)

Старый 29.04.2010, 14:28
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 7  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
хм. а может это он и был =)
__________________
Поймай яблоко 2!

Старый 29.04.2010, 20:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
А где вы там += увидели, в моём коде?

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

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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