2010-04-02 9 views
0

J'essaie de me connecter au pont FBJS. Il continue à me donner l'erreur suivante. Quand j'ouvre seulement une connexion et je n'ai aucune autre fenêtre ouverte.Flash: La connexion locale donne une erreur

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] 

Ceci est mon code:

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); 
    } 
} 

qui se trouve sur la page Facebook si je tente de l'exécuter localement la ligne suivante retourne null

LoaderInfo(root.loaderInfo).parameters.fb_local_connection 

Des idées?

+0

vient de modifier ma réponse; –

+0

serait bien s'il y avait une méthode connection.isOpen() et connection.close() que vous pourriez utiliser pour gérer cette situation. Les solutions que j'ai lues ailleurs suggèrent de créer une connexion en utilisant un nom de connexion connu, puis en passant un nom aléatoire aux deux instances, puis en fermant la connexion au nom connu et en rétablissant la connexion avec le nom aléatoire. l'idée est d'éviter de réutiliser un nom. La meilleure idée est d'avoir une option pour fermer la connexion à la sortie. En fait, le lecteur flash devrait le faire mais ne le fait pas. –

Répondre

1

Méfiez-vous des LocalConnections mises en cache. Si votre application est fermée de manière incorrecte, la connexion sera toujours "connectée". Arrêtez votre navigateur pour vous assurer qu'il est parti. Vous pouvez également donner un nom aléatoire à la connexion (si la logique de votre application le permet bien sûr). Espérons que cela vous épargne la tête!

EDIT:

Tenez, vous n'êtes pas censé se connecter celui-ci! Le récepteur, (celui traité par le pont) est celui qui est déjà connecté.

Exemple du centre développeur 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

J'ai essayé de redémarrer le PC et de lancer uniquement le lien en ligne. Ça ne marche toujours pas. –