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】:我发现通过从 Adobe 的站点安装 Flash 播放器的调试版本,我会得到一个对话框,其中包含实际的 Flash 异常而不是 NPObject 错误,因此这可能是找出有用的第一步到底发生了什么。
在我的情况下,似乎以某种方式传递的参数数量不正确,我不确定这是如何发生的(间歇性地),但这是另一个问题。 :)
【讨论】:
以上是关于Javascript -> Flash 抛出“错误调用 NPObject 方法”的主要内容,如果未能解决你的问题,请参考以下文章
AS2 ExternalInterface:错误:引发了无效异常
JavaScript 转到下一帧(Flash Javascript)