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

dav*_*avr 12 html php apache-flex flash actionscript

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

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

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

o.v*_*.v. 5

支持的html标签的子集很差,并且没有永久改变:

<a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u>
Run Code Online (Sandbox Code Playgroud)

这意味着无论转换质量如何,html都无法完全呈现; 如果用更基本的标签替换不支持的标签,你也可能放弃了大部分的CSS样式.

话虽这么说,http://simplehtmldom.sourceforge.net/(PHP)可以进行一些调整,它也足以应对无效标记(看看你在处理来自各种来源的内容之后你会怎么说,我会说从长远来看,这个功能本身可以节省很多痛苦 - 而不是替换

<h1>,...,<h6> => <b>
<strong>      => <b>
<em>          => <i>
Run Code Online (Sandbox Code Playgroud)

并将其余部分明文写入段落中,您会惊讶于它仍然具有可读性.你可能有点喜欢这样:

<h1> => <b class="header1">
Run Code Online (Sandbox Code Playgroud)

并根据需要添加一些css(尽管flash css支持也非常有限)

我一直在为沙漠拯救这个 - 你要么喜欢它,要么讨厌它,但它会成功.假设您的应用程序已部署在浏览器中(如果没有,我误解了您,为我节省了尴尬并在此处停止阅读)您可以使用iframe来严肃地显示您的HTML.

JS < - > AS通信相当简单,您可以将它放在应用程序的预定区域上,让人觉得它是它的一部分; 只记得在flash对象上设置windowmode /正确嵌入,这样它就不会在其他页面元素上呈现,然后增加iframe z-index.

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