【问题标题】:How to insert javascript functions to an HTML document from the child flash swf file?如何将 javascript 函数从子 flash swf 文件插入 HTML 文档?
【发布时间】:2012-02-21 11:44:46
【问题描述】:

我需要使用 actionscript 3 从 flash swf 文件中执行一些 JavaScript 字符串代码。 我读到可以通过使用 externalinterface.call 函数将 JavaScript 代码传递给父 html 文档来完成。然后我假设如果我在第一次使用 externalinterface.call 函数时可以在 HTML 文档中的 JavaScript 代码中声明函数会更快;如果 flash 代码重复调用 JavaScript 代码。所以让我问你如何做到这一点。有关详细信息,要加载的任何 JavaScript 在设计时都是未知的,我无法准备要加载的 JavaScript 文件。

【问题讨论】:

  • 你尝试了什么?只需在 Google 上搜索“externalinterface”即可获得 10 个使用教程。
  • @Laurent,您可以搜索正确答案,因为您知道正确的关键字。就我而言,Google 搜索中的 1000 个教程仅描述了如何在 html 文件中调用 javascript 函数。如果没有合适的关键字,就不可能从他们那里找到我的案例。

标签: javascript actionscript


【解决方案1】:

你可以试试这个:

var js:XML = <code><![CDATA[
    function() {
        window.myFunc = function(arg) {
            alert(arg);
        }
    }
]]></code>;
ExternalInterface.call(js);

以后您可以安全地调用:

ExternalInterface.call("myFunc", "myArgument");

请注意,使用 xml 只是一种轻松编写 Javascript 代码的方式(带有缩进和多行);)

【讨论】:

    【解决方案2】:

    仅供参考,除了使用 XML 对象,您还可以使用包含 JavaScript 代码的字符串在 eval 上调用 ExternalInterface。

    var myJSCode:String = "window.log = function(msg) { if (console) console.log(msg) }"
    ExternalInterface.call("eval", myJSCode);
    

    然后调用你的函数:

    ExternalInterface.call("log", "Hello from ActionScript");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2023-01-11
      • 1970-01-01
      相关资源
      最近更新 更多