我试图通过ExternalInterface将数据从Flash传递到Javascript。当我在本地主机上进行测试时,它可以正常工作,但是当我试图在IIS上设置一个网站时,我的同事可以测试我的应用程序,比如:http://192.168.0.10/MyApp,我得到了这个错误:
NPObject上的错误调用方法。
在Stackoverflow上阅读了一些问题之后,我尝试在嵌入标记中设置allowScriptAccess="always",在AS文件中设置Security.allowDomain(*),但它仍然不起作用。
如果这件事重要的话,我正在使用swf对象。
我遗漏了什么?
编辑:当我试图将方法从 js调用到swf时,就会发生错误。这是适应下面的答案的代码。
var swfReady = false;
swfobject.embedSWF("swf/1.swf", "flashContent", "300", "250", "11", "expressInstall.swf", null, { allowScriptAccess: "always" } , null, function (e) {
if (e.success) {
setTimeout(function () {
swfReady = true;
}, 150);
}
});
btnConfig.on('click', function () {
if (swfReady) {
flashContent.myMethod();
} else {
alert("Hold on...");
}
});这在本地主机上工作得很好,但是当有人试图通过我的IP查看相同的页面时,我会得到Javascript错误Error calling method on NPObject。
发布于 2011-12-20 12:39:19
有时,当swf还没有准备好时,就会发生这种情况。您可以在embedSWF中尝试回调函数。在此回调之前,不要调用任何swf方法。此外,有时您还需要几毫秒的延迟。
swfobject.embedSWF("sample.swf", "swfdiv", "400", "300", "9.0.0", "expressInstall.swf", null, null, null, function (e) {
if (e.success) {
console.log("swf ready ");
setTimeout(function(){
// call swf method here
}, 150);
} else {
console.log("embedding failed");
}
});https://stackoverflow.com/questions/8574493
复制相似问题