调用函数的ExternalInterface属于JS对象

时间:2013-04-28 12:08:36

标签: javascript actionscript-3 externalinterface

我在我的AS3项目中使用ExternalInterface通过Javascript做一些事情,但现在我需要用它来调用一些属于对象的函数。

像这样(AS3):

ExternalInterface.call("VIEWER.loadComplete");

JS代码:

var VIEWER = {
    loadComplete: function(){
        $('#'+this.maindiv).children('.mask').hide();
        $('#'+this.viewer).css({
            width:      '640px', 
            height:     '480px',
            overflow:   ''
        });
    }
}

这在Chrome中不起作用(仅适用于Firefox,我也不知道为什么)。有人能以这种方式澄清我吗?

2 个答案:

答案 0 :(得分:2)

Chrome播放器版本存在问题,您在Flash Player全局设置中设置的规则不会被此播放器使用/加载。所以你总是得到沙箱安全错误,外部接口不起作用。

您需要访问Chrome插件页chrome://plugins/并停用Flash Player的PPAPI(Pepper API,Chrome版)版本,并仅启用NPAPI版本(经典版)

答案 1 :(得分:1)

我解决了自己的问题,将以下内容添加到嵌入HTML的SWF对象中:

<param name="AllowScriptAccess" value="always">

现在我的SWF可以拨打ExternalInterface(即使在Chrome中)。