我正在尝试从Javascript调用Flash(AS3)函数。当代码运行时,我收到错误“错误:未捕获异常:错误调用NPObject上的方法!”从我今天的谷歌搜索,这似乎是一个安全问题,我已经做了我能找到的一切,但错误仍然出现。
一些细节:
* Flash 9和Flash 10播放器都会出现这种情况
* swf与加载它的php文件在同一个域中,并且包含试图调用Flash函数的javascript。
*我正在使用sfwobject2.2来加载swf文件,如下所示:
var flashvars = {};
var params = {};
var params = {menu: false, bgcolor: "#ffffff", allowScriptAccess: "always"};
swfobject.embedSWF("/path/to/swf", "id", "480", "310", "9.0.0", null, flashvars, params, attributes);
据我所知,我的Flash电影正在执行allowDomain事情:
Security.allowDomain("www.mydomain.com");
*我知道ExternalInterface.addCallback设置正确 - 当我禁用它时,我得到一个“没有这样的功能”错误而不是NPObject投诉。
这让我完全疯了,我只是无法弄清楚如何纠正它。有什么建议吗?
答案 0 :(得分:10)
我找到的答案是它出于多种原因抛出该错误。我的意思是我没有为它正在调用的函数发送正确数量的参数。
答案 1 :(得分:3)
我发现通过从Adobe网站安装Flash播放器的调试版本,我会得到一个对话框,其中包含实际的Flash异常,而不是NPObject错误,所以这可能是一个有用的第一步实际上是怎么回事。
在我的情况下,看起来不知何故,传递的参数数量不正确,我不确定这是如何发生的(间歇性地),但那是另一个问题。 :)