PDA

Просмотр полной версии : Тег TEXTFORMAT


flash33
08.07.2007, 01:46
Не новички наверно знают такую траблу
Берем строку типа str = "бла бла бла... <TEXTFORMAT LeftAlign='25'> бла бла бла...";
textfield.htmlText = str;
Текст отображается как и следует - с отступом
Пытаемся снова забрать форматированный текст из textfield:
trace(textfield.htmlText);
Как видим, текст претерпел изменения - мало то что появились обрамляющие теги - это понятно, но и исчезли внутренние теги TEXTFORMAT.
Если я к примеру форматирую текст с применением TEXTFORMAT в WYSIWYG редакторе и пытаюсь забрать готовый продукт, то получаю голую строку.
Вопрос: Можно ли выдернуть корректно отформатированную строку?

iNils
08.07.2007, 17:06
У TEXTFORMAT нет аттрибута LeftAlign

flash33
08.07.2007, 18:48
Пардон, опечатался :( - LEFTMARGIN, RIGHTMARGIN, INDENT, LEADING etc...
Как я сказал выше, даже при корректном форматировании обратно этот тег из htmlText не извлекается... В гугле тоже что то не нашарил ничего. Читаю в доках: "тег TEXTFORMAT не является стандартным тегом HTML. Он был введен для того, чтобы возможности разметки текста с использованием тегов были аналогичны применению свойств класса TextFormat.." Может в этом собака зарыта?
Тестируем в CS3
var tf:TextField = new TextField();
tf.width = 150; tf.height = 200;
tf.border = tf.wordWrap = tf.multiline = true;
addChild(tf);
var str = "Имя действительного автора этой рукописи, <TEXTFORMAT LEFTMARGIN='20'>созданной в первой половине двадцатых годов в одном из монастырей Внутренней Монголии, по многим причинам не может быть названо,</TEXTFORMAT> и она печатается под фамилией подготовившего ее к публикации редактора.";
tf.htmlText = str;
var format:TextFormat = new TextFormat();
format.leading = 6;
tf.setTextFormat(format, 20, 80);
trace(tf.htmlText);

iNils
08.07.2007, 20:37
flash33, это ас3 (судя по new TextField())? так какого вы пишите в Общие вопросы? Здесь вообще не задают вопросы про код. А для AS, есть целых три раздела, в зависимости от уровня и версии скрипта.

flash33
08.07.2007, 21:11
АC3 код лишь в качестве примера - если хотите, форматируйте под Flash MX - это применимо к любой версии, где есть тег. (Flash 7, 8 и т.д) Просто если бы я спросил отвлеченно, половина вообще б не поняла, о чем речь. Уважаемый модератор, если хотите, перенесите пост куда Вам нравится - я просто хочу узнать ответ. Больше полемизировать не буду.

iNils
08.07.2007, 21:27
<br> поставте перед <TEXTFORMAT>

flash33
09.07.2007, 00:58
Это не решение вопроса - у каждого тега обрывать строку... Во всяком случае надо получить текст ПОСЛЕ форматирования, а изначально html "голый".

iNils
09.07.2007, 01:51
TEXTFORMAT, это не только особое форматирование html для флеша, это форматирование АБЗАЦА. Отсюда такие такие ограничения. Надо просто это понять, и исходить от этого.

flash33
09.07.2007, 09:29
Вполне возможно, но далеко не очевидно, учитывая пример с кодом..
Вопрос закрыт.

iNils
09.07.2007, 16:26
Я бы сказал, что это баг, в смысле то, что переносится.