Comunidad de diseño web y desarrollo en internet

Comunicar SWFs con LocalConnection

A veces tenemos la necesidad de comunicar SWFs que no estén uno dentro de otro, es decir en lugares diferentes. En este tutorial veremos cómo hacerlo.

Usaremos LocalConnection, una clase de flash que sirve precisamente para esto, enviar información a otro SWF sin necesidad de usar los fscommand que tanto nos complican la vida.

Usaremos los siguientes métodos de la clase LocalConnection:

.connect(nombreDeLaConexion:String):Bolean
Este método solo recibe el nombre de la conexión con que será conocida en el otro swf, devuelve true si la conexión tuvo éxito y false y ocurrió algún error.
.close():void
Este método sirve para cuando ya no se use mas la conexión hecha con Connect() .
.send(nombreDeLaConexion:String,metodoEjecutar:String,[argumentos:Object]):Boolean
Este es uno de los métodos mas usados de esta clase, se utiliza después de haber hecho la conexión con conect() envía el nombre de la conexión, la función que se va a ejecutar y los argumentos de esta.

Bueno haremos una pequeña conexión que enviará una variable y la sumará en el otro swf.

Código del swf que enviará datos:

//creamos la conexión
var enviar_lc:LocalConnection = new LocalConnection();
//la variable
var dato:Number=1;
boton.onPress=function(){
  //enviamos los parámetros correctos, ya mencionados arriba.
  enviar_lc.send("nombreCX","metodo",dato);
}

Código del swf que los recibe:

//creamos una caja de texto donde veremos los resultados de la conexión
this.createTextField("resultado_txt", 1, 10, 10, 100, 22);
result_txt.border = true;
//creamos la variable de conexión donde recibiremos los datos
var recibir_lc:LocalConnection = new LocalConnection();
//en el método "metodo" se ejecutara con los parámetros que se envían
//desde el otro swf
recibir_lc.metodo = function(argum1:Number) {
  //convertimos el valor que hay en la caja de texto a tipo numérico
  aux=int(resultado_txt.text);
  //el valor que teniamos en la caja de texto le sumamos el argumento pasado
  aux+=argum1;
  //lo mostramos
  resultado_txt.text = aux;
};
//hacemos la conexion.
recibir_lc.connect("nombreCX");

Nota: El SWF que envia datos debe de tener un botón con el nombre de instancia: “boton”

Verán que la variable que se envia de un swf se suma a la que esta en el otro swf.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Descargar Archivo

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate