Actionscript 3.0 调用 Javascript 不起作用?

Posted

技术标签:

【中文标题】Actionscript 3.0 调用 Javascript 不起作用?【英文标题】:Actionscript 3.0 calling Javascript not working? 【发布时间】:2013-09-04 16:38:52 【问题描述】:

所以,我正在使用ExternalInterface.call("functionNameInjavascript");,但它不起作用...... 在 html 包装器中,我在两个地方都将 allowScriptAccess 设置为 always

<param name="allowScriptAccess" value="always" />

为什么它不起作用?

【问题讨论】:

你在课堂上添加了import flash.external.*吗? 能否展示 HTML 包装器中的 JavaScript 函数部分? 您需要提供更多信息,以便我们更好地猜测问题。 嗨,是的,我添加了 import flash.external.*; (实际上是导入 flash.external.ExternalInterface 但没关系) JavaScript 函数是这样的基本函数: function functionNameInJavascript() alert("Hi"); 【参考方案1】:

我猜您是在浏览器中本地运行 html 页面,而不是通过网络服务器? (在本地运行时,浏览器地址栏以“file:”开头)。

当 Flash Player 在这样的本地安全沙箱中运行时会有限制。

有两种解决方案:

    通过网络服务器测试页面(您可以在计算机上设置本地服务器) 将 Flash Player 配置为在本地安全沙箱中运行时信任文件。

我只描述第二步。转到Global Security Settings Panel 页面。尽管它是网页上的一个面板,但它实际上是用于配置您计算机上安装的 Flash Player 中的设置,这可能有点令人困惑。

点击“编辑位置”,然后点击“添加位置”。输入您的 Flash 项目所在的文件夹,例如“C:\projects\flash\”。

让它在 Chrome 中工作:

全局安全设置面板仅影响您计算机上的 Flash Player 插件。如果您使用的是 Chrome,则此面板不会有任何效果,因为 Chrome 默认使用其内置的 Flash Player 版本。因此,您需要告诉 Chrome 不要使用内置版本,而是使用普通插件:

    在 Chrome 的地址栏中输入“chrome://plugins/”。 您应该会看到两个“Shockwave Flash”插件。停用类型为“PPAPI”的那个,并确保启用类型为“NPAPI”的那个。 完成!

【讨论】:

以上是关于Actionscript 3.0 调用 Javascript 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

函数不返回值(错误 1170;ActionScript 3.0)

在 ActionScript 3.0 中,您可以对一个类使用 addEventListener 来响应另一个类的函数调用吗?

ActionScript 3.0 套接字无法重新连接

设置可见性槽属性不起作用 actionscript 3.0

[ActionScript 3.0] AS3.0和AS2.0的相互通信

ActionScript 3 TextManager ActionScript 3.0类