Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перенос по словам - реально ли? (http://www.flasher.ru/forum/showthread.php?t=112949)

CaXaP 13.06.2008 13:17

Перенос по словам - реально ли?
 
Здравствуйте)

У меня есть текст бокс, куда из БД подгружаются фразы (1 или 2 слова).
Текстбоксы не резиновые (размеры статичные).

И мне нужно чтобы перенос в них осуществлялся по словам, а не по буквам х_Х

Сейчас у меня может получиться такое:
MARBL
E
т.е. 1 буква перенеслась на след. строку.

Аналогично фраза из 2 слов также переносится криво
REGULA
R
CARPET
первое слово на 1 и 2 строках, второе на третей.

Вот мне бы сделать так, чтобы все слова переносились только целиком. Естественно, можно в БД это всё в виде штмл загнать и вручную расставить переносы, но для большой БД это нереально.

Есть ли какое-нибудь свойство для установки переноса по словам? Или мб простой код для реализации свойства?

Заранее спасибо)

etc 13.06.2008 13:38

Текстовые поля умеют переносить слова.

wvxvw 13.06.2008 14:09

TextField.wordWrap = true/false

CaXaP 13.06.2008 17:13

Я и писал, что с wordWrap получается плохо, вот смотрите:
http://imajr.com/delete.bmp-1065990

Переносится 1 буква в конце - некрасиво... Мне надо чтоб переносилось либо всё слово, либо вообще ничего не переносилось)

iNils 13.06.2008 17:26

CaXaP, на форуме есть возможность выкладывать файлы, поэтому не надо класть туда, где валяется куча лишнего хлама.
Из вашего скриншота не видно размеры самого поля и его настройки.

CaXaP 13.06.2008 19:42

Вложений: 1
А как тут выкладывать картинки? (ссылку тегом 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

Цитата:

Сообщение от CaXaP (Сообщение 745432)
Я и писал, что с wordWrap получается плохо, вот смотрите:
http://imajr.com/delete.bmp-1065990

Переносится 1 буква в конце - некрасиво... Мне надо чтоб переносилось либо всё слово, либо вообще ничего не переносилось)

Че будеш делать, когда слово будет больше ширины текстового поля?

wvxvw 13.06.2008 21:21

Ну... в такой ситуации даж нинаю... в голову приходит только такое:
Есть модуль к QuarkExpress (мб и к InDesign), который умеет расставлять гибкие переносы (флеш все равно их не понимает, но, сами символы потом можно будет заменить на какой-то другой, который невозможно отобразить в текстовом поле) ну и после замены текста (с отключенным wordWrap) смотреть разницу между реальной шириной текста и шириной текстового поля и пытаться заменить этот символ обратно на гибкий перенос (shy)... Но как-то мне это все кажется черз чур для такой задачи...

ЗЫ. Тему надо было называть "Перенос по слогам".

CaXaP 13.06.2008 21:54

Цитата:

Сообщение от †‡Paladin‡† (Сообщение 745482)
Че будеш делать, когда слово будет больше ширины текстового поля?

Скрывать оставшуюся часть слова (как делается в большинстве текстовых редакторов (в том же Flash CS3, например)).

Так то есть одно решение - принимать текст из базы и все пробелы между словами заменять на тег <br>, надеясь что макс. длина фразы будет 2 слова.
Но это танцы с бубном, да и негибко... Всё же надеюсь есть способ попроще :)

iNils 13.06.2008 21:58

Цитата:

Сообщение от CaXaP (Сообщение 745505)
Скрывать оставшуюся часть слова (как делается в большинстве текстовых редакторов (в том же Flash CS3, например)).

Отключите автосайз. А во всех редакторах есть скроллинг, поэтому и не видно.


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

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