2013-04-28 78 views
2

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

像这样的东西(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,我不知道为什么要么)工作。有人能以这种方式澄清我吗?

回答

1

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

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

现在我的SWF能够调用ExternalInterface(甚至在Chrome)。

2

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

您需要进入Chrome插件页面chrome://plugins/并取消激活PPAPI(Pepper API,Chrome版本)版本的Flash Player,并且仅启用NPAPI版本(经典版本)。

+0

感谢您的信息,RafH。我真的需要使用ExternalInterface,所以我能做什么?你认为有其他选择吗? – 2013-04-28 14:13:36

+0

当您使用http://访问您的内容时,您可以使用ExternallInterface,它可以与PPAPI播放器一起使用。问题只在于本地访问(file://)。 – RafH 2013-04-28 14:21:24

+0

即使使用http访问,我仍然遇到问题。有任何想法吗? :( – 2013-04-30 10:18:41