首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flash ExternalInterface出错

使用Flash ExternalInterface出错
EN

Stack Overflow用户
提问于 2011-12-20 11:09:00
回答 1查看 485关注 0票数 0

我试图通过ExternalInterface将数据从Flash传递到Javascript。当我在本地主机上进行测试时,它可以正常工作,但是当我试图在IIS上设置一个网站时,我的同事可以测试我的应用程序,比如:http://192.168.0.10/MyApp,我得到了这个错误:

NPObject上的错误调用方法。

在Stackoverflow上阅读了一些问题之后,我尝试在嵌入标记中设置allowScriptAccess="always",在AS文件中设置Security.allowDomain(*),但它仍然不起作用。

如果这件事重要的话,我正在使用swf对象

我遗漏了什么?

编辑:当我试图将方法 js调用到swf时,就会发生错误。这是适应下面的答案的代码。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2011-12-20 12:39:19

有时,当swf还没有准备好时,就会发生这种情况。您可以在embedSWF中尝试回调函数。在此回调之前,不要调用任何swf方法。此外,有时您还需要几毫秒的延迟。

代码语言:javascript
复制
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");
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8574493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档