2010-04-02 73 views
0

我試圖連接到FBJS橋。它不斷給我下面的錯誤。當我只打開一個連接,我沒有打開任何其他窗口。Flash:本地連接給出錯誤

ArgumentError: Error #2082: Connect failed because the object is already connected. 
at flash.net::LocalConnection/connect() 
at BabyVille()[C:\Documents and Settings\user\Desktop\babyville\flash\Main Project\src\BabyVille.as:56] 

這是我的代碼:

public class fbjsTest extends Sprite 
{ 
    private var connection:LocalConnection = new LocalConnection(); 
    private var connectionName:String = LoaderInfo(root.loaderInfo).parameters.fb_local_connection; 
    public function fbjsTest() 
    { 
     connection.connect(connectionName); 
    } 
} 

那就是Facebook頁面上,如果我嘗試在本地運行它下面的行返回null

LoaderInfo(root.loaderInfo).parameters.fb_local_connection 

什麼想法?

+0

剛編輯我的答案; )如果有一個connection.isOpen()和connection.close()方法可以用來處理這種情況,那麼 – 2010-04-02 17:41:11

+0

會很好。我在別處讀過的解決方案建議,使用已知連接名稱進行連接,然後將隨機名稱傳遞給兩個實例,然後關閉已知名稱連接並使用隨機名稱連接重新連接。這個想法是爲了避免重複使用一個名字。最好的想法是有一個選項來退出時關閉連接。實際上Flash Player應該這樣做,但不是。 – 2016-02-26 02:45:03

回答

1

請注意緩存的LocalConnections。如果您的應用程序關閉不正確,連接仍將「連接」。關閉瀏覽器以確保它不見了。你也可以給連接一個隨機的名字(如果你的應用的邏輯當然允許的話)。 希望省心頭疼!

編輯:

挺住,你並不意味着連接這一個!接收器(由橋接器處理)是已連接的接收器。從FB開發中心

例子:

var connection:LocalConnection = new LocalConnection(); 
var connectionName:String = LoaderInfo(this.root.loaderInfo).parameters.fb_local_connection; 

function callFBJS(methodName:String, parameters:Array):void { 
    if (connectionName) { 
     connection.send(connectionName, "callFBJS", methodName, parameters); 
    } 
} 

callFBJS("document.setLocation", ["http://someurl"]); 
+0

我試過重新啓動電腦,只運行在線鏈接。仍然不起作用。 – 2010-04-02 15:27:56

相關問題