2010-02-09 70 views
0

我使用FBML爲FB應用程序Flash調用FBJS

我有一個Flash和閃存設想調用頁面上的JavaScript。我讀了很多網站試圖找出它,但仍然有問題。

下面是使用JavaScript的網頁:

<fb:fbjs_bridge/> 
<div id="swfContainer"></div> 
<script> 
// the javascript to call and change the text of ztest001 
function callmenow(a) { 
    var obj = document.getElementById("ztest001"); 
    obj.setTextValue("Calling"); 
} 

// generating the SWF 
var swf = document.createElement('fb:swf'); 
swf.setId('my_swf_id'); 
swf.setWidth('630'); 
swf.setHeight('520'); 
swf.setSWFSrc('http://hollywood-life.madscience-games.com/ztest/test1.swf'); 
document.getElementById('swfContainer').appendChild(swf); 



</script> 


<div onclick="callmenow('a')">call me now</div> 
<div id="ztest001">   YOo  </div> 

這裏,它是Flash代碼。 (一幀。代碼是在框架上,用一個文本框「myvar1」)

var connection:LocalConnection = new LocalConnection(); 
var connectionName:String = LoaderInfo(this.root.loaderInfo).parameters.fb_local_connection; 
connection.allowDomain("apps.facebook.com", "apps.*.facebook.com"); 


function callFBJS():void{ 
    myvar1.text = "START"; // debugging purpose 
    if (connectionName) { 
     myvar1.text = "Connection now"; // debugging purpose 
     var pArray = ['bs']; 
     connection.send(connectionName, "callmenow", "callmenow", pArray); 
     myvar1.text = "SENT"; 
    } 
} 

callFBJS(); 

好吧,當我測試,閃存負載。代碼遍歷所有內容,並在Flash文本框中顯示「SENT」。但是,它看起來並不像調用JavaScript並更改HTML頁面中的文本。

我做錯了什麼?我嘗試了ExternalInteface.call方法,但這也不起作用。

此外,當我在FireFox中運行它,而不是錯誤彈出。 然而,當我在IE中運行它,我得到這個:

VerifyError: Error #1033: Cpool entry 36 is wrong type. 

ReferenceError: Error #1065: Variable FBJS is not defined. 

回答

1

你有沒有嘗試改變:

connection.send(connectionName, "callmenow", "callmenow", pArray); 

connection.send(connectionName, "callFBJS", "callmenow", pArray); 
+0

現在的工作。謝謝。 – Murvinlai 2010-02-11 07:37:35