是否可以将 HTML 代码转换为 ActionScript?

Posted

技术标签:

【中文标题】是否可以将 HTML 代码转换为 ActionScript?【英文标题】:It is possible to convert HTML code into ActionScript? 【发布时间】:2015-05-20 00:09:03 【问题描述】:

我有一个 ASPX Web 应用程序供我的业务后台人员使用。在其中一个后台模块中,我使用TinyMCE 在将一些文本保存到数据库之前对其进行编辑。文本如下所示:

<p data-mce-style="-webkit-margin-before: 0px; -webkit-margin-after: 0px; font-family: 'Segoe UI'; font-size: 14px; background-color: #f7f7f7;">
    <strong>Is</strong>
     one of the 
    <span style="text-decoration: underline;" data-mce-style="text-decoration: underline;">most</span>
     brilliant 
    <span style="background-color: rgb(255, 204, 153);" data-mce-style="background-color: #ffcc99;">ballets</span>
     in the 
    <strong>world</strong>
    . "
    <em>Sleeping Beauty</em>
    " take 
    <span style="color: rgb(51, 153, 102);" data-mce-style="color: #339966;">us</span>
     to an 
    <a href="http://pt.wikipedia.org/" target="_blank" data-mce-href="http://pt.wikipedia.org/">unchanted</a>
    &nbsp;place
</p>
<ul>
    <li data-mce-style="-webkit-margin-before: 0px; -webkit-margin-after: 0px; font-family: 'Segoe UI'; font-size: 14px; background-color: #f7f7f7;">with forests,</li>
    <li data-mce-style="-webkit-margin-before: 0px; -webkit-margin-after: 0px; font-family: 'Segoe UI'; font-size: 14px; background-color: #f7f7f7;">curses and faries,</li>
</ul>
<p style="text-align: justify;" data-mce-style="text-align: justify;">
    with a romantic and lovely 
    <span style="color: rgb(0, 0, 255);" data-mce-style="color: #0000ff;">song</span>
    . A fantastic
    <sup>show</sup>.
</p>

移动前端应用程序(由另一个人用 Flash 开发)需要显示所有样式不变的文本。但是,有时应用程序不显示任何内容,开发人员说这是因为 Flash 不喜欢 html 标记/样式。

我在想我们可以使用某种解析器将 HTML 代码转换为更适合 Flash 的代码,但我找不到任何东西。我遇到了这两个链接,但我对 ActionScript 一无所知,所以它们对我帮助不大:

AS3 TextField and StyleSheet StyleSheet AS3

有没有什么简单的方法可以将 HTML 转换成 ActionScript?

【问题讨论】:

您无法将 HTML 转换为 ActionScript。 HTML是一种用于描述网页结构的标记语言,而ActionScript是一种类似于javascript编程语言。在我看来,您实际上是在尝试做其他事情,但不清楚是什么 - 请re-phrase your question,以便我们更好地了解您的情况。 Flash 文本字段支持 一些 HTML 标签。根据SWF spec,"...动态文本还具有静态文本所没有的许多格式化功能。这些丰富的格式化功能表示为 HTML 文本标记标签的子集。 " 请参阅该文档的第 173-174 页,了解 Flash 支持的 HTML 标记列表。 如果我对您的情况的理解正确,则存储在数据库中的文本包含 HTML 标记(例如:&lt;p&gt;Hello, &lt;b&gt;World!&lt;/b&gt;&lt;/p&gt;),这将传递给 Flash 前端程序。由于启用了 HTML 支持的 Flash 文本字段能够处理常见的标签,例如 &lt;b&gt;&lt;i&gt;,我不知道为什么会有任何问题。我建议您与处理 Flash 程序的人谈谈 the document I linked to before 中提到的 supported 标签。 data-mce-style 不是 HTML 属性,它是 MCE 以某种方式使用的自定义属性。基本上,您存储在数据库中的代码非常特定于 MCE,因此您将不得不进行一些自定义转换。而且您已经发现 TextField 中支持的 HTML/CSS 子集非常有限。如果您的客户端使用 AIR,您可以使用 HTMLLoaderStageWebView 来获取完整的 HTML 渲染器。 @Ninita 如果您使用 AIR,您也许可以通过StageWebView/HTMLLoader 来实现,但是您失去了大部分控制权并且很难集成。否则,没有更好的选择。 Flash 不是 HTML 渲染器,而且在这方面做得很差。即使它支持的东西也非常慢。如果你坚持使用 Flash,你的选择真的很有限。 【参考方案1】:

不幸的是,没有“简单的方法”。

正如您已经发现的那样,TextField 类通过htmlTextstyleSheet 属性支持基本的HTML 和CSS 呈现,但是supported tags 和styles 非常有限。在某些情况下,您可以转换标签(使用RegExp 或简单的字符串搜索)以接近原始样式。

此外,data-mce-style 之类的内容是 MCE 特有的,因此您必须将其转换为 HTML 中有意义的内容。

如果您使用的是 AIR,则可以使用 HTMLLoaderStageWebView。这两个类都使用完整的 HTML 渲染引擎(WebKit 或本机 Web 渲染器)。

最后,这可能是您最好的选择,在网络浏览器中,您可以在 SWF 上覆盖 &lt;div&gt;(使用 wmode=opaquetransparent)并在浏览器中显示 HTML。

【讨论】:

关于StageWebView 的简短说明,我在评论中提到:如果您打算以任何方式将此文本集成到您的界面中,这不是一个可行的解决方案,因为@987654334 @ 覆盖您的应用程序并且完全不透明。除非您将界面添加到 HTML 本身中,否则它将只是一个带有文本的纯色,位于您的应用程序的中间。无论如何,这是一个很好的答案。

以上是关于是否可以将 HTML 代码转换为 ActionScript?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将 iframe 转换为 html? [关闭]

是否可以在python中将包含JavaScript图表的html文件转换为PDF?

Selenium - 以编程方式将 html 转换为 junit

是否可以将 HTML 文件转换为 QR 码?

是否可以将 mex 代码转换为 C++ 代码?

是否可以使用 Jsoup 1.8.1 将 HTML 转换为 XHTML?