【发布时间】: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