Comunidad de diseño web y desarrollo en internet online

Error LocalConnection. Al tuto tambien le pasa

Citar            
MensajeEscrito el 05 Oct 2006 09:57 am
Hola, tengo un problema que parece que no se puede resolver.
El ejemplo del problema es claro, si abres el tutorial de LocalConnection
http://www.cristalab.com/tutoriales/155/comunicar-swfs-con-localconnection
veras que funciona correctamente, pero si abres este tutorial es otra ventana de navegador
sin haber cerrado el navegador 1, en el navegador 2 ya no funciona.

Esto es un problema que debe de poder resolverse, verdad?

Saludos.

Por ochio

23 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Nov 2006 08:24 am
Hola,

hace tiempo que conozco el foro pero hasta ahora nunca me habia registrado.
Me he encontrado con el mismo problema de ochio y por lo que veo no hay solucion teniendo en cuenta la fecha del post...

¿Nadie sabe algun otro metodo de pasar variables de un swf a otro dentro de un mismo html o alguna forma de solucionar el problema del localConnection?

Un saludo y gracias.

Por maelstrom

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2006 09:37 am
Yo creo que no hay forma salvo que habras antes la página. Yo he probado lo siguiente...

abro la pagina nueva y le paso el send la primera vez no funciona y la segunda si.

Os digo que he probado con un setInterval para cargar la pagina y no va tampoco. Al final lo que he hecho es no llamar a una nueva ventana y lo hago todo sobre la misma. Me gustaria haberlo hecho con un getURl y asignarle el localconnection pero me he dado por vencido.

Por Santos

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Nov 2006 09:51 am
Gracias por tu respuesta, pero es que mi problema no tiene nada que ver con eso.

Yo tengo los dos swf en el mismo HTML, no tengo que esperar a que se cargue nada. Hasta ahí todo funciona bien. El problema es cuando abro la misma web dos veces en dos ventanas distintas de internet explorer. La segunda ventana no funciona bien, y a veces interactua con el swf de la primera ventana.

Te cuento mi caso mas detallado a ver si lo explico mejor. Tengo un swf con un menu en el lateral izquierdo y otro swf a modo de cabecera con una galeria de imagenes. Al pulsar en una seccion del menu, este envia una variable a la cabecera para que cambie la imagen.

En el momento que abro una segunda ventana con la misma web, al pulsar sobre cualquier seccion del menu en vez de cambiar la imagen de la cabecera de esa web lo hace en la de la otra ventana.

Lo que necesito es que cada ventana solo trabaje con ella misma y que no me haga esas comunicaciones extrañas.

Un saludo.

Por maelstrom

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Nov 2006 10:16 am
has probado con poner nombrevariablelocal.close() cada vez que llamas a la conexion.
es decir cerrar la conexion cada vez que la has invocado

me explico mejor.

creas la variable localconnection.
haces el send y a continuacion el close.

Espero que te sirva si no lo es que realiza el localconecction sobre el archivo activo y deberas poner el foco de la pagina sobre la que quieras utilizar el localconnection.

Espero que me haya explicado. y espero que te funcione

Por Santos

19 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Nov 2006 10:24 am
yo probe de todo y me di por vencido, realmente no he encontrado la manera de poder solucionar el problema, he revisado toda la documentacion de localconnection.

En algunos sitios parecia haber solucion pero cuando abrias el segundo navegador, ocurria lo mismo.
Se podria pensar en usar js pero en mac no funciona bien, de hay viene el uso de localconnection.

Saludos.

Por ochio

23 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Nov 2006 04:49 pm
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&oacute;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!! ;)

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.