【问题标题】:Calling a flash ExternalInterface in swiffyobject在 swiffyobject 中调用 flash ExternalInterface
【发布时间】:2013-01-10 10:39:49
【问题描述】:

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

【问题讨论】:

    标签: javascript flash externalinterface google-swiffy


    【解决方案1】:

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

    希望这会有所帮助!

    【讨论】:

    • 你知道AS2是否也支持它?
    【解决方案2】:

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

    请参考:

    【讨论】:

    • 这些链接已损坏。他们重定向回 Swiffy 主页。
    【解决方案3】:

    不过,从 AS3-to-HTML5-via-Swiffy 调用 JavaScript 函数还是很容易的:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多