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 来响应另一个类的函数调用吗?