Название: [NME_TextWrap канал] (перенос слов) Отправлено: Sqwer от 26 Марта 2011, 08:52:22 Представляю вашему вниманию канал NME_TextWrap,
задачей которого является автоматический перенос слов на следующую строку, если они не влезают в определённый диапозон. Часто подобная проблема возникает при отображении произвольного текста на элементах ГУИ. Без переноса они выходят за рамки элемента, что ,безусловно, не красиво и не приемлемо. Кратко о сути канала: на вход канала подаётся текст на выходе получается текст с автоматическим форматированием переноса слов, кроме того можно установить максимальное кол-во строк в выходном тексте и задать смещение от первой строки. Описание: NME_TextWrap ([in]Text SourceString, [out]Text WrapString, [in]Float maxStringSize, [in]Float oneSimbolWide, [in]Float firstLineOffset, [out]Float WrapStringCount) SourceString - исходный текст () WrapString - полученный текст с установленными переносами на след строку maxStringSize - максимальная длина строки в Юнитах oneSimbolWide - ширина одного символа в Юнитах maxVisibleLines - максимальное кол-во строк выходного текста firstLineOffset - смещение строк выходого текста (0- смещения нет, 1 - смещение на одну строчку) WrapStringCount - количество строк в преобразованном тексте Не заменим при создании элемента ГУИ для просмотра текста с возможностью скролирования. Исправление багов: - отсутствие чилд каналов не провоцирует вылет - отсутствие строки в канале SourceString не провозирует вылет - оптимизация скорости работы - канал отслеживает всевозможные изменения в входных параметрах, и если таковые произошли - канал перестраивает текст. Если изменений нет , то не вызывается обратотка текста, тем самым экономя время обработки. - добавлен выходной параметр - WrapStringCount - количество строк в преобразованном тексте Ниже представлены: схема подключения пример (стрелками вверх/вниз - скролирование текста) канал (Релиз для Q.4.3.2) Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Corpic от 26 Марта 2011, 11:32:00 Канал действительно полезный, но я бы еще добавил в качестве выходного аргумента количество строк, получаемых при форматировании текста (порой требуется при вертикальном выравнивании относительно центра).
А еще можно добавить функцию выравнивания текста по ширине, по центру и т.д. Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Sqwer от 26 Марта 2011, 12:46:32 А еще можно добавить функцию выравнивания текста по ширине, по центру и т.д.
это уже вопросы отображения, а не редактирования текста. В Квесте предусмотрено отображение 4 мя каналами: 1)текстурный текст 2)3Д текст 3) 2Д экранный текст 4) 2Д экранный текст (дэбаг textout) последний поддерживает центрирование и выравнивание. Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Corpic от 26 Марта 2011, 21:06:06 По вопросу отображения полностью согласен - снимаю вопрос с повестки дня -:). Просто я привык пользоваться примитивами: сам преобразую - сам отображаю.
А что косается количества преобразованных строк - это порой важно. К примеру: выходной текст составляет две строки или три? Как его позиционировать по dY? (если нужно выровнять по центру) Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Corpic от 26 Марта 2011, 21:48:45 P.S.: Может быть я плохо искал но до сих пор не нашел способа стандартными каналами квеста отобразить текст с выравниванием по ширине.
Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Sqwer от 27 Марта 2011, 00:21:02 Цитировать P.S.: Может быть я плохо искал но до сих пор не нашел способа стандартными каналами квеста отобразить текст с выравниванием по ширине. я тоже :-\Название: Re: [NME_TextWrap канал] (перенос слов) Отправлено: Sqwer от 25 Апреля 2011, 21:54:58 В канал внесены изменения.
|