El asunto radica en que flash usa (y hace referencia a) el primer swf que contenga un connectionName especificado en las dos (o mas) peliculas que deseas intercomunicar.
Pero cuando deseas reusar ese connectionName , simplemente NO SE PUEDE.
Si cierras la conexion y lo reconectas, no funcionaria en la primer ventana, si se vuelve a ella.
La "Solucion Teórica", sería usar un connectionName DISTINTO, para cada ocasion en que se habra una ventana nueva, pero IDENTICO PARA para ambos swf's que esten, en ese momento, en esa ventana, UNICAMENTE.
Una implementación de esta "Solucion Teórica" podría ser, usando algun lenguaje de servidor, por ejemplo php.
Tomando el ejemplo del tutorial y adaptandolo a nuestras necesidades.
En el primer fla habria que poner este code.
Código :
this.createTextField("resultado_txt", 1, 10, 10, 100, 22);
result_txt.border = true;
var recibir_lc:LocalConnection = new LocalConnection();
recibir_lc.metodo = function(argum1:Number) {
aux=int(resultado_txt.text);
aux+=argum1;
resultado_txt.text = aux;
};
//linea importante, el parametro randomVar, es proporcionado via Flashvars
recibir_lc.connect("nombreCX" + randomVar);
En el seguindo fla habria que poner este code.
Código :
var enviar_lc:LocalConnection = new LocalConnection();
var dato:Number=1;
boton.onPress=function(){
//linea importante, el parametro randomVar, es proporcionado via Flashvars
enviar_lc.send("nombreCX" + randomVar, "metodo", dato);
}
por último en el archivo que contenga a los swf's. Ojo debe ser un "archivo.php"
Código :
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Comunicación</title>
<style type="text/css">
body { font:11px Verdana, Arial, Helvetica, sans-serif; }
</style>
</head>
<body>
<p>Presiona el boton para empezar la conexión ;) </p>
<?php
// Codigo php que nos genera un numero aleatorio unico y valido para esta ventana
// Si lo deseas con más precisión usa la Fuerza -> (Google tm)
$randomVar = rand(0,100000000);
?>
<object type="application/x-shockwave-flash" data="con1.swf" width="250" height="100">
<param name="movie" value="con1.swf" />
<param name="quality" value="high" />
<!-- Incrustamos la variable via flasvars -->
<param name="FlashVars" VALUE="randomVar=<?php print $randomVar;?>"/>
</object>
<br><br>
<object type="application/x-shockwave-flash" data="con2.swf" width="250" height="100">
<param name="movie" value="con2.swf" />
<param name="quality" value="high" />
<!-- Incrustamos la variable via flasvars -->
<param name="FlashVars" VALUE="randomVar=<?php print $randomVar;?>"/>
</object>
</body>
</html>
Y eso es todo, si abrimos varias ventanas, funciona perfecto.
Bueno, de igual fomra se puede pensar en una solución si no dispones de un lenguaje de servidor que te genere el numero aleatorio, el cual puede ser cargado via loadvars de algun txt, pero eso ya te toca ati!!