【问题标题】:Javascript -> Flash throwing "Error calling method on NPObject"Javascript -> Flash 抛出“错误调用 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 投诉。

这让我完全发疯了,我只是不知道如何纠正它。有什么建议吗?

【问题讨论】:

  • 你找到答案了吗?我有同样的问题。

标签: javascript flash externalinterface


【解决方案1】:

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

【讨论】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多