【问题标题】:ExternalInterface calls only work in the flash debug pluginExternalInterface 调用仅在 Flash 调试插件中有效
【发布时间】:2014-05-15 23:40:38
【问题描述】:

我正在尝试使用 Flash 对象将来自我无法通过 xmlsocket 类控制的服务器的信息代理到我的 javascript。为此,我创建了一个小型 swf,它实现了我需要的所有 xmlsocket 东西,并通过 ExternalInterface 公开了它的部分内容。然后我将这个 swf 嵌入我的后台页面并尝试访问公开的函数。

当我禁用 chrome 的默认 flash 插件以使用我安装的调试版本来获取跟踪和错误消息时,它工作正常。我可以正确调用暴露的函数,并且 flash 可以调用 javascript 函数而没有警告或错误,但是当我重新启用 chrome 的默认 flash 时,一切都停止工作了。

以下是我的代码的相关部分:

if(ExternalInterface.available){
  ExternalInterface.addCallback('test',test);
  ExternalInterface.call('console.log','test');
}

[...]

public function test() : void{
  if(ExternalInterface.available)
    ExternalInterface.call('alert','test');
}

我对任何闪存都非常陌生,是否需要添加一些内容才能使其在非调试闪存中工作?

我在 Windows 7 上的 chrome 34.0.1847.137m 中使用这两种闪存的 13.0.0.214 版本。

编辑:我忘了明确地说这是在 chrome 扩展中。

【问题讨论】:

  • 你是在本地运行还是从服务器运行?如果在本地,Chrome 的 PPAPI FP 中有一个似乎无法修复的错误。您可以从(本地)服务器或使用其他浏览器运行您的 swf。
  • @Fygo 它在 chrome 扩展中运行,我认为它算作本地的。使用其他浏览器并不是一个真正的选择。
  • 我明白了。如果是这样的话,我猜你运气不好。您可以尝试安装 NPAPI 版本,看看是否可以使用。

标签: javascript actionscript-3 flash google-chrome google-chrome-extension


【解决方案1】:

所以我明白了为什么它适用于一个 Flash 插件而不适用于另一个。我之前在global settings 菜单中设置了一些受信任的位置,但这些位置不适用于胡椒闪光,因此会导致安全错误。只需添加受信任的位置 chrome-extension:// 即可再次运行。

【讨论】:

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