Форум 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)
-   -   Тег TEXTFORMAT (http://www.flasher.ru/forum/showthread.php?t=98170)

flash33 08.07.2007 01:46

Тег TEXTFORMAT
 
Не новички наверно знают такую траблу
Берем строку типа
Код:

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

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


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

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