1

graphapi_web_1_8_1.swc有一個Facebook.init()函數,其功能幾乎與FB.init() JavaScript版本的參數相同。然而,我想要設置的是Facebook的hideFlashCallback參數,通過"options"自變量傳遞到Facebook.init()FB.init()。 JavaScript的SDK採用"Object"類型的值如下所示:如何從graphapi_web_1_8_1.swc設置Facebook的hideFlashCallback

http://developers.facebook.com/docs/reference/javascript/FB.init/

不過,如果我已經打電話graphapi_web_1_8_1.swc的Facebook.init()從ActionScript,我怎麼能傳遞一個JavaScript功能hideFlashCallback?

我試着用ExternalInterface.call()調用"GetHideFlashCallback()" JS函數,其返回值是回調函數作爲一個對象,但它回來爲在ActionScript空,即使在ActionScript變量是類型爲"Object""*"

我的下一個測試是避免調用graphapi_web_1_8_1.swc的Facebook.init(),只是做一些像ExternalInterface.call("FB_init_proxy(args)")這樣的東西,它只會直接使用Facebook的JavaScript SDK。

但是有沒有一種方法可以將ActionScript函數作爲對象變量來回傳遞?如果不是,爲什麼?這是一個安全問題嗎?

+0

您是否曾獲得此功能的工作?我自己也在爲類似的場景苦苦掙扎。 –

回答

0

你可以看到你的問題在這裏的原因:https://developers.facebook.com/blog/post/637/

所以在JavaScript初始化的facebook,你必須添加hideFlashCallback:

FB.init({ 
    appId:appId, 
    status:true, 
    cookie:true, 
    oauth:true, 
    frictionlessRequests: true, 
    hideFlashCallback : displayFlash 
}); 

和displayFlash功能,你可以做你想做的

function displayFlash(a) 
{ 
    if(a.state == 'opened') 
    { 
     // do what you want when a chat or notification is open 
    } 
    else 
    { 
     // do what you want when a chat or notification is closed 
    } 
}