Импорт Flex RTE HtmlText в TLF TextFlow - PullRequest
1 голос
/ 05 января 2011

Я работаю разработчиком над приложением Flex / Air, и мы используем глючный Flex RTE (RichTextEditor), чтобы позволить пользователю управлять своими заметками. В настоящее время я пытаюсь оценить, насколько дорого для нас было бы создать новый текстовый компонент с использованием TLF (Text Layout Framework).

Действительно важным является вопрос, можем ли мы импортировать текст HTML, созданный RTE сразу. Я знаю, что есть некоторые ограничения в отношении списков с TLF 1.1, но работает ли он вообще?

Я только что попытался получить отформатированный текст HTML из RTE, например:

var htmlText:String = '<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="defaultFont" SIZE="14" COLOR="#000000" LETTERSPACING="0" KERNING="0">1hr run on Wednesday - feeling ok!</FONT></P></TEXTFORMAT>'

когда я передаю это TextConverter следующим образом:

var textFlow:TextFlow = TextConverter.importToFlow(htmlText, TextConverter.HTML_FORMAT);

Flash Player выдает исключение. Я также попытался обернуть текст с

<html><body></body></html>

, но та же проблема. Так что, похоже, не работает сразу. Что ты переживаешь? Это очень важно для нас.

ОБНОВЛЕНИЕ 1:

Когда я пытаюсь импортировать HTML, как указано выше (то же самое объявление переменной), я получаю эту ошибку:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at flashx.textLayout.formats::TextLayoutFormatValueHolder/apply()[C:\Vellum\branches\v1\1.0\dev\textLayout_core\src\flashx\textLayout\formats\TextLayoutFormatValueHolder.as:357]
at HtmlImporter$/parseTextFormat()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\HtmlImporter.as:307]
at BaseTextLayoutImporter/parseObject()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\BaseTextLayoutImporter.as:464]
at BaseTextLayoutImporter/parseFlowGroupElementChildren()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\BaseTextLayoutImporter.as:419]
at HtmlImporter$/parseHtmlContainer()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\HtmlImporter.as:269]
at BaseTextLayoutImporter/parseObject()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\BaseTextLayoutImporter.as:464]
at HtmlImporter/importFromXML()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\HtmlImporter.as:142]
at HtmlImporter/importFromString()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\HtmlImporter.as:130]
at BaseTextLayoutImporter/importToFlow()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\BaseTextLayoutImporter.as:73]
at flashx.textLayout.conversion::TextConverter$/importToFlow()[C:\Vellum\branches\v1\1.0\dev\textLayout_conversion\src\flashx\textLayout\conversion\TextConverter.as:87]
at TLFTestApp/init()[/Users/Arne/Documents/Adobe Flash Builder 4/TLFRichTextEditor/src/TLFTestApp.mxml:29] <-- // executing TextConverter.importToFlow(htmlText, TextConverter.HTML_FORMAT);

Тем временем я удалил теги, и это работает, но вопрос все еще остается.

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

1 Ответ

0 голосов
/ 18 января 2011

Взгляните на http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flashx/textLayout/conversion/TextConverter.html

Существует три константы для формата, ни одна из которых не соответствует используемой вами:

PLAIN_TEXT_FORMAT
TEXT_FIELD_HTML_FORMAT
TEXT_LAYOUT_FORMAT

Кроме того, формат следующего HTML-кода больше похож на XML в формате TLF, чем на HTML.

<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="defaultFont" SIZE="14" COLOR="#000000" LETTERSPACING="0" KERNING="0">1hr run on Wednesday - feeling ok!</FONT></P></TEXTFORMAT>
...