问题 Javascript - > Flash throw“NPObject上的错误调用方法”


我试图从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投诉。

这让我完全疯了,我只是无法弄清楚如何纠正它。有什么建议吗?


2202
2017-09-13 18:45


起源

你有没有找到答案?我有同样的问题。 - UltimateBrent


答案:


我找到的答案是它出于多种原因抛出该错误。我的意思是我没有为它所调用的函数发送正确数量的参数。


10
2017-10-26 21:30



您是否找到了一份概述可能原因的好文件?小心分享? - Fiid
关键是所有错误都会导致这一个输出。可能是调用了错误的函数,可能是错误的参数数量,可能是安全性。 - UltimateBrent
关于为什么这个错误可能间歇性地出现的任何想法?我正在处理的代码有时而不是其他代码,使用相同的数据集等。 - Fiid
不,这太普通了。所有这些都意味着“某些东西”出了问题。 - UltimateBrent


我发现通过从Adobe的网站安装Flash播放器的调试版本,我会得到一个对话框,其中包含实际的Flash异常,而不是NPObject错误,所以这可能是确定实际情况的第一步上。

在我的情况下,看起来不知何故,传递的参数数量不正确,我不确定这是如何发生的(间歇性地),但那是另一个问题。 :)


3
2018-05-01 00:57