2013-04-28 38 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

相關問題