2010-04-02 38 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

相关问题