将 Flash 文件转换为 HTML
Posted
技术标签:
【中文标题】将 Flash 文件转换为 HTML【英文标题】:Converting Flash File to HTML 【发布时间】:2019-12-27 12:47:31 【问题描述】:我有 Flash 文件 (.fla),使用 Adobe Animate 将其转换为 html。转换时很少有代码被注释掉。需要为注释的 Actionscript 识别 java 脚本等效语法/代码段。以下是示例注释操作脚本。
dashboard_btn.onRelease = function()
ExternalInterface.call("Main.getInstance().FlashDecision","DASHBOARD");
gotoAndStop("DASHBOARD");
如何替换onRelease和ExternalInterface.call?
例如,gotoAndStop("DASHBOARD"); //ActionScript,可以转换成this.gotoAndStop("DASHBOARD"); //javascript
【问题讨论】:
不要否定我的问题,如果您不清楚,请发表评论。这样我就可以更新我的问题。通过否定标记,我现在怎么会错过我错过的。 【参考方案1】:“如何替换
onRelease
和ExternalInterface.call?
”
(1) 对于onRelease
,您可以使用HTML 的mouseup 事件:
所以AS3代码:
dashboard_btn.onRelease = function()
在 Javascript 中,它变成... (其中 div 是 container,类似于 Flash 的 MovieClip/Sprite 容器):
<div id="dashboard_btn" onmouseup="someFunctionName();">
<img src="img_of_button.png" >
</div>
<script type="text/javascript">
function someFunctionName()
//do what need when user's finger leaves a mouse button (release)
alert("finger was released from button");
</script>
(2) HTML 代码中没有ExternalInterface.call
。这是为了让 SWF 与其容器进行通信(例如:如果 SWF 包含在 HTML 文档中,则调用 Javascript 的函数)。如果您正在转换为 Javascript,那么您的代码已经 在容器内(此时不需要 externalInterface
存在)。只需在需要时手动调用 Javascript 函数即可。
如果您的代码真正包含一些名为gotoAndStop
的JS 函数,请使用它,否则您可以通过显示“DASHBOARD”框架的内容手动实现相同的目的。可以通过创建一些 HTML 字符串来提供内容,然后使用 appendChild
或 innerHTML
使用该 HTML 更新 <div>
容器。
你可以将上面的代码扩展成这样的逻辑:
function someFunctionName()
//# do what need when user's finger leaves a mouse button (release)
alert("finger was released from button");
//# if such Function exists in your code
this.gotoAndStop("DASHBOARD");
//# or else run some other Function manually
FlashDecision("DASHBOARD");
function FlashDecision( input_txt )
alert("Show content here of frame labeled : " + input_txt); //where input_txt is "DASHBOARD"...
【讨论】:
感谢您的回复,经分析发现Adobe Animate转换的JavaScript文件依赖于CreateJS库。使用 CreateJS 语法和事件处理程序能够达到预期的结果。以上是关于将 Flash 文件转换为 HTML的主要内容,如果未能解决你的问题,请参考以下文章
将 LibreOffice Impress 导出的 flash 文件转换为 mp4 格式?