1

我有一个使用 ExternalInterface 与 javascript 通信的闪存。我已经使用 swiffy 将其转换为 HTML5。如何使用 javascript 调用我在 flash 中创建的方法?

4

3 回答 3

7

以下是仍在寻找答案的更新:截至目前,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();

希望这可以帮助!

于 2013-10-10T07:31:26.490 回答
3

根据 swiffy 文档,swiffy 的 AS 2.0 或 AS 3.0 不支持 ExternalInterface。

请参阅:

于 2013-02-28T11:17:27.193 回答
3

尽管如此,还是很容易从 AS3-to-HTML5-via-Swiffy 调用 JavaScript 函数:

var urlRequest : URLRequest = new URLRequest( "javascript:doRoo();" );
navigateToURL( urlRequest,'_self' );

从 JavaScript 调用在 AS3 pre-swiffy 中声明的函数的最佳方法是什么 - 基本上是相反的?

于 2013-03-12T19:18:59.517 回答