Очистка содержимого в формате HTML для отображения во Flash?


Я хочу отображать содержимое в формате HTML из различных источников внутри приложения Flash Flex. Flash поддерживает форматирование HTML в своих текстовых полях, однако оно очень ограничено по сравнению с веб-браузером. Существуют ли какие-либо сценарии, которые преобразуют обычный текст в формате HTML в формат, который может обрабатывать Flash? Мои конкретные примеры использования:

  • Отображение электронных писем в формате HTML внутри Flash
  • Отображение RTF-файлов внутри Flash (после запуска RTF2HTML преобразование на сервере)
  • Отображение случайного HTML-содержимого, скопированного и вставленного из других источников во Flash

Я открыт для кода, который выполняется либо на клиенте, либо на сервере, но сервер, вероятно, предпочтительнее.

Author: davr, 2012-02-21

3 answers

Подмножество поддерживаемых html-тегов довольно бедно и не изменилось навсегда:

<a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u>

Это означает, что независимо от качества преобразования html не может быть отображен полностью по назначению; вы также можете отказаться от значительной части стиля css, если замените неподдерживаемые теги более базовыми.

Как говорится, http://simplehtmldom.sourceforge.net / (PHP) будет работать с некоторыми настройками, и он достаточно компетентен, чтобы справиться и с недопустимой разметкой (видя, как вы обрабатываете контент из разных источников, я бы сказал, что одна эта функция в долгосрочной перспективе избавит вас от многих проблем) - чем заменить

<h1>,...,<h6> => <b>
<strong>      => <b>
<em>          => <i>

И распишите остальную часть текста в абзацы, вы будете удивлены, насколько читабельным он все еще будет. Вы тоже могли бы быть немного необычными, вот так:

<h1> => <b class="header1">

И добавьте немного css по мере необходимости (хотя поддержка flash css также довольно ограничена)

Я приберегал это для пустыни - вам это либо понравится, либо возненавидится, но это это сделало бы свое дело. Предполагая, что ваше приложение развернуто в браузере (если нет, и я неправильно вас понял, избавьте меня от смущения и прекратите читать прямо здесь), вы могли бы использовать iframe для отображения вашего html, серьезно.

JS ПОСКОЛЬКУ связь довольно проста, и вы можете расположить ее в определенной области вашего приложения, создавая иллюзию, что она является его частью; просто не забудьте правильно установить режим окна для flash-объекта/встраивания, чтобы он не отображался поверх других элементов страницы, затем увеличьте z-индекс iframe.

Я не удивлюсь, если это будет воспринято как "уродливый" подход, но внутри он прекрасен - в итоге вы получите дословный html и реальную поддержку css. Что касается взаимодействия с пользователем, вы можете даже перехватывать клики по ссылкам и т. Д. В iframe и запрашивать действие у movieclip.

 5
Author: o.v., 2012-03-05 12:19:19

Вы можете использовать Очиститель HTML и указать белый список тегов, которые вы хотите поддерживать.

 2
Author: Dragos, 2012-02-29 15:07:47

Библиотека синтаксического анализа HTML AS3 не совсем то, что я ищу, поскольку она не преобразует HTML, а вместо этого отображает его во Flash, что означает, что он не будет доступен для редактирования. Но это может быть полезно в некоторых случаях, когда я хочу только отображать, а не редактировать текст.

Другой вариант - посмотреть несколько примеров HTML, которые я хотел бы отобразить, а затем написать регулярное выражение, чтобы преобразовать их в формат, ожидаемый Flash/TLF. Но я чувствую, что это может быть огромным усилием, из-за широкого диапазон HTML там есть.

 1
Author: davr, 2012-02-21 00:43:46