Esto es un post que puse en mi blog...
LocalConnection, y olvídate del Javascript
La primera vez que tuve que conectar dos .swf que estaban en diferentes marcos, acudí por enésima vez a la página de Kadazuro y en ella, había un gran tutorial de como conectar dos swf que estan en diferentes marcos.
El tutorial me sacó del problema, pero no dejé de verlo como un engorro pues tenía que usar Javascript. Cada día nos estamos acostumbrando a usar Flash más como un sistema de programación que como una herramienta, la cual necesita ayuda de PHP, ASP o Javascript, aún falta mucho por avanzar, pero que decir que por ejemplo LocalConnection nos puede como mínimo evitar el tedioso uso de Javascript en la comunicación de marcos.
En este ejemplo que es de lo más básico, he puesto en un .swf tres botones, y cuando se clican el otro .swf recoge los datos mediante LocalConnection y nos dice que botón ha sido clicado. Decir que LocalConnection funciona tanto en el mismo marco, como en diferentes, e incluso estando un reproductor Flash y una página web abierta, algo que desde mi punto de vista da mucho juego a la hora de crear Cd's interactivos con acceso a contenidos en la web.
Pero bueno, basta ya de cháchara, y a lo que íbamos...
Descargar el .fla
En el .swf de la derecha nos encontraremos con el siguiente código:
function enviarConex(boton){
conex_sale = new LocalConnection();
conex_sale.send("derecha", "ejecutar", boton);
delete conex_sale;
}
boton1.onPress = function(){
numero_boton = 1;
enviarConex(numero_boton);
}
boton2.onPress = function(){
numero_boton = 2;
enviarConex(numero_boton);
}
boton3.onPress = function(){
numero_boton = 3;
enviarConex(numero_boton);
}
Analicemos esto...
Primero tenemos una función que se llama enviarConex(boton). Como podeis ver, recogemos el número de botón apretado. Con new LocalConnection() creamos la conexión, y con conex_sale.send() enviamos los datos al .swf de la izquierda de la siguiente manera:
conex_sale.send("nombre de la conexión", "método a ejecutar", "parametros");
Por último borramos la conexión.
En el .swf de la izquierda tenemos lo siguiente:
conex_entrante = new LocalConnection();
conex_entrante.ejecutar = function(param) {
nuevo_txt.text = "HAS APRETADO EN EL FLASH DE LA DERECHA EL BOTÓN " + param;
};
conex_entrante.connect("derecha", boton);
De este lo importante es esto:
conex_entrante.connect("derecha");
Cuando la conexión que hay en este .swf conecte con la conexión llamada "derecha", entonces se ejecuta el método "ejecutar". ¿Porqué "ejecutar" y no otro? En la conexión del .swf de la derecha hemos puesto mediante .send() que método deseabamos ejecutar, acordaos:
conex_sale.send("nombre de la conexión", "método a ejecutar", "parametros");
Una vez hecho esto, la función recoge los parámetros mediante "function (param)" y ya podemos poner nuestro texto en la respectiva caja.
Hay que tener en cuenta, que nosotros podemos tener todos los métodos que queramos, y cuando hagamos el .send(), ejecutar la que nos venga bien en determinado momento...
En fin, nada más por hoy, ya nos veremos...
C'yaaa.
Aquí tienes el .fla para descargar...
http://www.elecash.org/blog/descargas/conex.zip
Supongo que te ira de perlas