【发布时间】:2013-01-10 10:39:49
【问题描述】:
我有一个使用 ExternalInterface 与 javascript 通信的 flash。我已经使用 swiffy 将其转换为 HTML5。如何使用javascript调用我在flash中创建的方法?
【问题讨论】:
标签: javascript flash externalinterface google-swiffy
我有一个使用 ExternalInterface 与 javascript 通信的 flash。我已经使用 swiffy 将其转换为 HTML5。如何使用javascript调用我在flash中创建的方法?
【问题讨论】:
标签: javascript flash externalinterface google-swiffy
以下是仍在寻找的答案的更新: 截至目前,Swiffy 5.3 已经支持 ExternalInterface。我可以使用以下方式从 AS3 进行 javascript 调用:
ExternalInterface.call("jsFunction", args);
在js中,你只需要声明“jsFunction”:
<script>
function jsFunction(args) {
alert("Call from AS3");
}
</script>
对于反方向,通过Swiffy从JS调用AS3可以在AS3中使用这个实现:
ExternalInterface.addCallback("nameForJS", closeFunction);
function closeFunction(s:String) {
trace("Received " + s + " from js");
}
在 JS 中,您需要将 DOM el 弄得紧到 swiffy,然后从那里执行函数:
document.getElementById("swiffycontainer").nameForJS();
希望这会有所帮助!
【讨论】:
根据 swiffy 文档,swiffy 的 AS 2.0 或 AS 3.0 不支持 ExternalInterface。
请参考:
【讨论】:
不过,从 AS3-to-HTML5-via-Swiffy 调用 JavaScript 函数还是很容易的:
var urlRequest : URLRequest = new URLRequest( "javascript:doRoo();" );
navigateToURL( urlRequest,'_self' );
从 JavaScript 调用在 AS3 pre-swiffy 中声明的函数的最佳方法是什么 - 基本上是相反的?
【讨论】: