Javascript -> Flash 抛出“错误调用 NPObject 方法”

Posted

技术标签:

【中文标题】Javascript -> Flash 抛出“错误调用 NPObject 方法”【英文标题】:Javascript -> Flash throwing "Error calling method on NPObject" 【发布时间】:2010-11-27 23:01:41 【问题描述】:

我正在尝试从 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 投诉。 这让我完全发疯了,我只是不知道如何纠正它。有什么建议吗?

【问题讨论】:

你找到答案了吗?我有同样的问题。 【参考方案1】:

我找到的答案是,它抛出该错误的原因有很多。我的问题是我没有为它调用的函数发送正确数量的参数。

【讨论】:

您是否找到了概述各种可能原因的好文档?愿意分享吗? 重点是所有错误都会导致这一输出。可能调用了错误的函数,可能是错误的参数数量,可能是安全性。 关于为什么此错误可能间歇性发生的任何想法?我正在处理的代码有时会在相同的数据集等下工作,而不是其他代码。 不,这是一个太笼统的错误。真正的意思是“某事”出了问题。【参考方案2】:

我发现通过从 Adob​​e 的站点安装 Flash 播放器的调试版本,我会得到一个对话框,其中包含实际的 Flash 异常而不是 NPObject 错误,因此这可能是找出有用的第一步到底发生了什么。

在我的情况下,似乎以某种方式传递的参数数量不正确,我不确定这是如何发生的(间歇性地),但这是另一个问题。 :)

【讨论】:

以上是关于Javascript -> Flash 抛出“错误调用 NPObject 方法”的主要内容,如果未能解决你的问题,请参考以下文章

AS2 ExternalInterface:错误:引发了无效异常

你如何从 Flash 触发 javascript 函数?

JavaScript 转到下一帧(Flash Javascript)

Flash 和 javascript, 灯箱

如何使用 javascript 使 flash 元素移动友好?

Flash 视频播放器:JavaScript 控件