1 votes

Qu'est-ce qui peut provoquer des erreurs de connexion lors de l'utilisation de localConnection bidirectionnelle en Flash ?

J'essaie d'établir une LocalConnection (LC) bidirectionnelle entre deux objets Flash sur la même page Web. Un objet est AS2 et l'autre AS3.

  1. J'utilise un objet LC pour envoyer et recevoir des données sur chaque swf (cela ne devrait pas avoir d'importance, n'est-ce pas ? J'ai essayé d'utiliser deux objets, un pour l'envoi et un pour la réception, mais j'ai eu le même problème).

Ils .connect() correctement pour qu'ils écoutent tous les deux. Mais j'obtiens des erreurs lorsque j'essaie d'envoyer des données du SWF AS2 au LC AS3. Cela se produit 95% du temps, mais parfois cela fonctionne, donc je sais que ce n'est pas un problème avec les noms des LC (j'ai vérifié, évidemment).

Il arrive qu'un ou deux messages passent et que des messages conséquents échouent.

Une idée de ce qui pourrait en être la cause ?

Je souhaite créer une carte de connexion multiple afin que de nombreux swfs AS2 puissent se connecter à un swf AS3. Cela posera-t-il un problème ?

2voto

fenomas Points 9565

L'une des causes possibles est que j'ai remarqué que les écoutes multiples du même nom de CL semblent ne pas fonctionner. Pour voir ce que je veux dire, ouvrez cette page sur deux onglets différents, et vous devriez voir que les deux SWF "émetteurs" fonctionnent, mais que le message n'est reçu que sur le premier onglet que vous avez ouvert. Je suppose que vous n'utilisez que deux SWF, mais s'ils essaient tous les deux d'écouter le même nom de CL, vous voyez peut-être quelque chose de similaire ?

De plus, je crois que la LC est, d'une certaine manière, désactivée pour les SWF qui se trouvent à l'intérieur d'éléments de page invisibles, ou peut-être même simplement hors écran. Faites-vous quelque chose de ce genre ?

0voto

maclema Points 5959

Vous n'avez pas par hasard deux navigateurs différents ouverts sur la même page, n'est-ce pas ? LocalConnection se connectera à travers les navigateurs, ce qui peut causer ce problème.

En général, ce que je fais pour m'assurer que les noms des CL sont uniques est de générer un nom de CL aléatoire sur le serveur, puis de passer ce nom de CL aux deux swfs en utilisant FlashVars.

Cela peut aussi avoir un rapport avec l'ordre dans lequel les swf se chargent. Il se peut que le swf qui écoute la connexion se charge après que le swf qui crée la connexion essaie de se connecter. Ensuite, dans les autres 5% du temps, les swf se chargent dans le bon ordre. Si une erreur se produit, essayez simplement de vous connecter à nouveau.

0voto

Danny Beckett Points 152

J'ai enfin trouvé la cause du problème.

Il semble que, bien que dans AS3 vous puissiez utiliser le même objet LC pour envoyer ET recevoir des événements, le faire dans AS2 vous donnera des erreurs après un certain temps (probablement en essayant d'envoyer après avoir reçu).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X