Просмотр полной версии : Перенос по словам - реально ли?
Здравствуйте)
У меня есть текст бокс, куда из БД подгружаются фразы (1 или 2 слова).
Текстбоксы не резиновые (размеры статичные).
И мне нужно чтобы перенос в них осуществлялся по словам, а не по буквам х_Х
Сейчас у меня может получиться такое:
MARBL
E
т.е. 1 буква перенеслась на след. строку.
Аналогично фраза из 2 слов также переносится криво
REGULA
R
CARPET
первое слово на 1 и 2 строках, второе на третей.
Вот мне бы сделать так, чтобы все слова переносились только целиком. Естественно, можно в БД это всё в виде штмл загнать и вручную расставить переносы, но для большой БД это нереально.
Есть ли какое-нибудь свойство для установки переноса по словам? Или мб простой код для реализации свойства?
Заранее спасибо)
Текстовые поля умеют переносить слова.
TextField.wordWrap = true/false
Я и писал, что с wordWrap получается плохо, вот смотрите:
http://imajr.com/delete.bmp-1065990
Переносится 1 буква в конце - некрасиво... Мне надо чтоб переносилось либо всё слово, либо вообще ничего не переносилось)
CaXaP, на форуме есть возможность выкладывать файлы, поэтому не надо класть туда, где валяется куча лишнего хлама.
Из вашего скриншота не видно размеры самого поля и его настройки.
А как тут выкладывать картинки? (ссылку тегом IMG не поставить - там защита какаято :)))
Да и на мелком скрине видно хорошо, что переносится 1 буква от конца слова...
Размеры поля маленькие (без autoSize) - где то 30 на 20 (шрифт тоже мелкий).
autoSize использовать нельзя (поле фикисирвоанное должно быть)...
На скрине хорошо видно, что переносится 1 буква в конце слова...
Код, инициализирующий текстбокс:
opt[i][0] = mc_options.createTextField("txt"+i,1000+i,kX*(7+i*40),kY*5-4,36,30);
opt[i][0].autoSize = false;
opt[i][0].border = false;
opt[i][0].multiline = true;
opt[i][0].wordWrap = true;
opt[i][0].setNewTextFormat(new TextFormat("Franklin Gothic Demi Cond", 9, 0x000000, false, false, null, null, null, "center"));
opt[i][0].wordWrap = true;
†‡Paladin‡†
13.06.2008, 19:43
Я и писал, что с wordWrap получается плохо, вот смотрите:
http://imajr.com/delete.bmp-1065990
Переносится 1 буква в конце - некрасиво... Мне надо чтоб переносилось либо всё слово, либо вообще ничего не переносилось)
Че будеш делать, когда слово будет больше ширины текстового поля?
Ну... в такой ситуации даж нинаю... в голову приходит только такое:
Есть модуль к QuarkExpress (мб и к InDesign), который умеет расставлять гибкие переносы (флеш все равно их не понимает, но, сами символы потом можно будет заменить на какой-то другой, который невозможно отобразить в текстовом поле) ну и после замены текста (с отключенным wordWrap) смотреть разницу между реальной шириной текста и шириной текстового поля и пытаться заменить этот символ обратно на гибкий перенос (shy)... Но как-то мне это все кажется черз чур для такой задачи...
ЗЫ. Тему надо было называть "Перенос по слогам".
Че будеш делать, когда слово будет больше ширины текстового поля?
Скрывать оставшуюся часть слова (как делается в большинстве текстовых редакторов (в том же Flash CS3, например)).
Так то есть одно решение - принимать текст из базы и все пробелы между словами заменять на тег <br>, надеясь что макс. длина фразы будет 2 слова.
Но это танцы с бубном, да и негибко... Всё же надеюсь есть способ попроще :)
Скрывать оставшуюся часть слова (как делается в большинстве текстовых редакторов (в том же Flash CS3, например)).Отключите автосайз. А во всех редакторах есть скроллинг, поэтому и не видно.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.