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

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

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

Регистрация: Nov 2013
Сообщений: 47
По умолчанию Ограничения на размер типа String

Столкнулся с такой проблемой. У меня есть небольшой чат. В нем есть при написании сообщения, в нем применяются стили(цвет сообщение, реагирование на событие клика по имени автора сообщения) и пр. при помощи св-ва TextField.htmlText. Так вот

Код:
html += msg; // msg - новое сообщение
_textField.htmlText = html; // html - это переменная строкового типа, в которой хранится все html теги и небольшая история предыдущих написанных сообщений.
В общем в итого после набора 10-ка сообщений переменная html становится большого размера и после этого набранные сообщения не отображаются в textfield. Может ли это быть причиной?

Старый 21.05.2014, 00:26
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Сделайте как в скайпе, историю по дням типа того. Ну а вообще поидее такое ограничение не сделать. Ограничение есть, но оно настолько большое, что бояться обычно нечего.
Если посмотрите тот же скайп, видно, что ограничение ЕСТЬ на само сообщение. А НЕСКОЛЬКО сообщений, это отдельные объекты, а не один TF
__________________
Марк Tween

Старый 21.05.2014, 00:30
helio вне форума Посмотреть профиль Отправить личное сообщение для helio Найти все сообщения от helio
  № 3  
Ответить с цитированием
helio

Регистрация: Nov 2013
Сообщений: 47
не у меня попроще, чем в скайпе. Чисто простой игровой чат.

Старый 21.05.2014, 02:03
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Пускай попроще, но смысл то один, делать надо как положено
__________________
Марк Tween

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Там даже дело не в ограничении на длину строки, а в том, что такой огромный текст начнет тупить при прокрутке. in4core дело говорит, надо разбивать на дни
__________________
Ко мне можно и нужно обращаться на ты)

Старый 21.05.2014, 10:55
helio вне форума Посмотреть профиль Отправить личное сообщение для helio Найти все сообщения от helio
  № 6  
Ответить с цитированием
helio

Регистрация: Nov 2013
Сообщений: 47
А если вместо TextField использовать TextArea это не изменит ситуацию?

Старый 21.05.2014, 11:06
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
В основе компонента TextArea сидит все тот же TextField. Или вы думаете он там какой-то особенный?
Тупняк TextField на больших объемах текста имеет место быть. Но вообще, уточните, какой именно объем текста вы пытаетесь отобразить? Потом, вы используте html-форматирование, возможно, закралась ошибка в расстановку тэгов.

Старый 21.05.2014, 13:09
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,921
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Когда я делал чат, я делал массив строк и функцию update(), которая проходилась по массиву и составляла html для текстового поля.
Хотя нет, я даже делал массив объектов, в объект я сохранял имя, сообщение и дату отправления.
А форматировал всё это как надо в функции update().
Это так, чтобы разделить работу программы на несколько частей)
Конечно, даже при больших объёмах сообщения обновлялись довольно быстро.
Однако хранить и отображать все эти сообщения не желательно, ибо рано или поздно начинаются тормоза, и чтобы их избежать нужно сделать отображение только последних ну там 100-200 сообщений.
И сделать кнопочку "просмотреть старые сообщения", которая бы отводила пользователя на 100-200 сообщений назад.
Ах, да, я бы вам не советовал напрямую давать пользователям возможность писать в htmlText, ибо таким образом они могут встраивать и картинки(<img src="..." />).
Поэтому лучше экранируйте все < и > в сообщении перед отправкой.
__________________
There is no thing in this world that is not simple.

Старый 21.05.2014, 13:34
helio вне форума Посмотреть профиль Отправить личное сообщение для helio Найти все сообщения от helio
  № 9  
Ответить с цитированием
helio

Регистрация: Nov 2013
Сообщений: 47
Цитата:
Сообщение от alexcon314 Посмотреть сообщение
В основе компонента TextArea сидит все тот же TextField. Или вы думаете он там какой-то особенный?
Тупняк TextField на больших объемах текста имеет место быть. Но вообще, уточните, какой именно объем текста вы пытаетесь отобразить? Потом, вы используте html-форматирование, возможно, закралась ошибка в расстановку тэгов.
Ну истории сообщений у меня, как таковой нет. Просто сохраняются последние 30 сообщений, а остальные удаляются. Вы правы. Проблема была в парсинге. Когда я пишу апостроф или двойные кавычки, то сообщение не отображается. Например, сообщение: I don't know.

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

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

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


 


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


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