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

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

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

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
Question Текст без TextInput-ов

Многие, наверняка, уже знают о том, как это делается, а я вот все еще в танке))

Предположим, передо мной стоит задача создать чат. Есть окно чата. Пользователи отправляют сообщения, у каждого свой цвет. По мимо этого приходят всякие служебные сообщения, типа "Пользователь покинул комнату". У этих сообщений другой размер, цвет и гарнитура.

Когда приходит новое сообщение, в контейнер добавляется текст заданного цвета и шрифта. Вопрос. Как все это реализовать без кучи textInput-ов? Может быть можно выводить текст без их использования? Или с использованием одного textInput-а и отрисовкой его отпечатка в контейнере?
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'

Старый 14.01.2010, 17:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,439
Почитайте про TextFormat
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Думается, имелся в виду TextField... читайте про TextFormat.

Старый 14.01.2010, 17:21
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
:)

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,277
Так а чем одно текстовое поле для отображения окна чата не устраивает?

Старый 14.01.2010, 17:23
Himerets вне форума Посмотреть профиль Отправить личное сообщение для Himerets Найти все сообщения от Himerets
  № 5  
Ответить с цитированием
Himerets
 
Аватар для Himerets

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
да с текстформатом-то я знаком.
я так понимаю, предлагается такое решение: отобразить один большой textField, и при добавлении новой строки тут же ее отформатировать. Так?

Добавлено через 2 минуты
> Так а чем одно текстовое поле для отображения окна чата не устраивает?

устраивает, просто интересно, есть ли возможность вывода текста прям на спрайте.
Например в делфях у канвы есть метод: Canvas.TextOut. И не нужно использовать вообще никаких наследников
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'


Последний раз редактировалось Himerets; 14.01.2010 в 17:27. Причина: обшибся
Старый 14.01.2010, 19:20
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 6  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Можно использовать CSS, и это удобно в данном случае, просто назначить логику распределения классов стилей для сервера, клиентов

Код AS3:
chatTextArea.htmlText += "<span class = 'darkRed'>" + messageString + "</span><br>";

Старый 14.01.2010, 19:25
Himerets вне форума Посмотреть профиль Отправить личное сообщение для Himerets Найти все сообщения от Himerets
  № 7  
Ответить с цитированием
Himerets
 
Аватар для Himerets

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
а как в htmlText сделать переход на новую строку?
пробовал <BR> и \n - не помогло
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd'

Старый 14.01.2010, 19:57
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
:)

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,277
TextField#multiline true должно быть.

Старый 15.01.2010, 09:38
Crenth вне форума Посмотреть профиль Отправить личное сообщение для Crenth Найти все сообщения от Crenth
  № 9  
Ответить с цитированием
Crenth
[+1 19.06.10]
[+1 27.07.10]
 
Аватар для Crenth

Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
а попробуйте создать отдельный класс. Пускай это будет контейнер сообщения.
В контейнер поместите собственно текст сообщения, учетную информацию, кнопки управления и прочую лабуду.
Затем создавайте экземпляр класса каждый раз, когда будет появляться новое сообщение в чате.

Проще говоря: контейнер - это конструктор лего. Собрали модельку (то, что вам нравится, используя фишки белого цвета).
Затем, когда поступает новое сообщение, вы собираете точно такую же (как эталонную) модель, но используете фишки нужного цвета. И ставите ее на стол.
Поступило еще сообщение - собрали еще.

При этом новое сообщение будет порождаться примерно так:

Код AS3:
var mess: myMessClass = new myMessClass("Вася, приходи пить пиво!", fromUserid);
в этом случае вы будете работать в основном не с полями, а с контейнерами.
А поля опишите один раз в классе.

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

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

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


 


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


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