【问题标题】:Is there any way to execute a js function from actionscript with local content?有没有办法从带有本地内容的 actionscript 执行 js 函数?
【发布时间】:2011-03-12 04:57:01
【问题描述】:

当 html 文件和 swf 文件都使用 file: 协议时,我正在尝试从 actionscript 执行类似 window.alert 的函数。

有人知道怎么做吗?

无需更改全局闪存安全设置

【问题讨论】:

    标签: javascript flash actionscript local


    【解决方案1】:

    看了Controlling access to scripts in a host web page之后好像不行。

    对于在本地运行的 SWF 文件,仅当 SWF 文件和包含网页(如果有)位于本地受信任的安全沙箱中时,对这些 API 的调用才会成功。如果内容在 local-with-networking 或 local-with-filesystem 沙箱中,则对这些方法的调用会失败。

    然后,本地沙箱上的this page 基本上说除非 swf 位于用户或安装程序需要将其放入的“本地受信任的沙箱”中,否则它将无法正常工作。

    This blog post 关于“本地文件系统沙箱”说:

    首先,我认为这里的文档有点过于慷慨了。从本地文件系统加载的 SWF 确实面临一些限制。最相关的限制可能是:

    1. SWF 无法通过 URL 或 ExternalInterface 调用 JavaScript(或 vbscript)
    2. SWF 无法调用 HTTP 或 HTTPS 请求。
    3. 查询字符串参数(例如 Blah.php?querystring=qs-value)被剥离并且不会被传递(即使是对本地文件的请求)

    【讨论】:

      【解决方案2】:

      有一个文档“Controlling access to scripts in a host web page”描述了允许 Flash 内容与 Javascript 交互的各种方式和限制。

      根据文档,只要您的嵌入标签包含设置为“始终”的 AllowScriptAccess,无论页面从何处加载,您都应该没问题。

      【讨论】:

      • 啊,它说如果allowScriptAccess="always",域将无关紧要,但在此之前它说“对于本地运行的 SWF 文件,只有当 SWF 文件和包含的网页(如果有)在本地信任的安全沙箱中。如果内容在本地网络或本地文件系统沙箱中,则对这些方法的调用将失败。所以我认为这是不可能的。
      【解决方案3】:

      您需要更新Flash Player settings,以便将您的文件路径列为“受信任的位置”。然后您将能够使用外部接口和其他 JS 通信方法。

      此外,您不能使用外部接口(如 alert)从 AS 传递默认的 JS 函数。您需要编写自定义函数...

      动作脚本:

      import flash.external.ExternalInterface;
      ExternalInterface.call("alertFromFlash", 'hello');
      

      JavaScript:

      function alertFromFlash(str) {
         alert(str);
      }
      

      或者,如果您将其分发给客户。解释如何更改 Flash Player 设置可能很困难,因此您可以改为从 CD 运行服务器,从而绕过安全设置的需要。我过去在Flying Ant server 上运气不错。

      【讨论】:

      • 抱歉,我的问题已经说得更清楚了,我不希望用户必须更改他们的全局闪存设置。
      • 然后运行本地服务器,正如我上面所描述的,是唯一的方法。
      • P.S.或者作为嵌入了 Flash 的 HTML/JS AIR 应用程序分发,但必须由用户安装。
      猜你喜欢
      • 2011-07-13
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      相关资源
      最近更新 更多