清理HTML格式的内容以便在Flash中显示?

时间:2012-02-20 23:46:18

标签: php html flash flex actionscript

我想在Flash Flex应用程序中显示来自各种来源的HTML格式化内容。 Flash在其文本字段中支持HTML格式,但与Web浏览器相比,它非常有限。是否有任何脚本可以将常见的HTML格式文本转换为Flash可以处理的格式?我的具体用例是:

  • 在Flash中显示HTML格式的电子邮件
  • 在Flash中显示RTF文件(在服务器上运行RTF2HTML转换后)
  • 将从其他来源复制并粘贴的随机HTML内容显示到Flash中

我对在客户端或服务器上运行的代码持开放态度,但服务器可能更可取。

3 个答案:

答案 0 :(得分:5)

支持的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&lt; - &gt; AS沟通非常简单,您可以将其放置在应用的预定区域,让人觉得它是其中的一部分;只记得在flash对象上设置windowmode /正确嵌入,这样它就不会在其他页面元素上呈现,然后增加iframe z-index。

如果这被视为一种“丑陋”的方法,我不会感到惊讶,但它内部很漂亮 - 你最终会得到逐字html和真正的css支持。至于用户互动,您甚至可以拦截iframe中的链接点击等,并从动画片段中请求操作。

答案 1 :(得分:2)

您可以使用HTMLPurifier并指定要支持的代码白名单。

答案 2 :(得分:1)

AS3 HTML Parser Library并不是我想要的,因为它不会转换HTML,而是在Flash中呈现它,这意味着它不可编辑。但在某些情况下,我只想显示而不是编辑文本,这可能很有用。

另一种选择是查看我希望能够显示的几个示例HTML,然后编写正则表达式将它们转换为Flash / TLF期望的格式。但我觉得这可能是一项巨大的努力,因为那里有广泛的HTML。