Comunidad de diseño web y desarrollo en internet online

Problemas con LocalConnection

Citar            
MensajeEscrito el 18 Abr 2012 08:57 am
Hola estoy tratando de comunicar dos swfs a través del LocalConnection para pasar una serie de variables del primer swf al segundo. He seguido los pasos del siguiente tutorial (http://www.cristalab.com/tutoriales/comunicar-swfs-con-localconnection-c155l/#comment-form) pero adaptándolo a lo que necesito.
En mi caso el segundo swf se carga dentro del primer swf. No sé si ésto puede ser un problema o la causa del error que me aparece...¿Es posible pasar variables al segundo swf contenido en el primero?

Error #2044: AsyncErrorEvent no controlado: text=Error #2095: flash.net.LocalConnection no pudo invocar la función de repetición de llamada 'nombre_metodo_receptor'

Tengo la función de status que me indica que la conexión se ha hecho pero no encuentra la función que atiende al envío (y sí está en el segundo swf). ¿Alguna sugerencia?
Gracias

Por emedmaria

73 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Abr 2012 10:55 am
¿No se podría extraer la variable del padre sin recurrir a localConnection()?.

Código ActionScript :

var extraidaDelPadre:TipoDeDato = this.parent.nombreDeLaVariableDelPadre

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 18 Abr 2012 11:23 am
Gracias!
Pero accediendo al parent accedo al loder que ha cargado el segundo swf, no al contenido o variables del primero :S

Por emedmaria

73 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Abr 2012 12:20 pm
Prueba así:

Código ActionScript :

//Una vez que haya terminado de cargar el movieClip en su contenedor
var yo:MovieClip = getChildByName(nombreDelMcCargado) as MovieClip;
var dato:tipoDeDato = yo.parent.variableOPropiedad;


También podrías crear una función en el contenedor que devuelva el valor:

Código ActionScript :

var datoRequerido:tipoDeDato = elDato;
function devolverDato () :tipoDeDato {
   return datoRequerido;
}


Y lo obtendrías asi:

Código ActionScript :

var contendor:Object = getChildByName(elContenedor);
var miDato:tipoDeDato = contenedor.devolverDato;

Por favor si alguien con más conocimiento que yo ve que digo alguna parida, por favor que me corrija y así a mi también me vale de aprendizaje.

Un saludo.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 19 Abr 2012 11:23 am
Gracias pero no me acaba de funcionar correctamente porque tengo acceso a las variables del segundo swf (el que cargo en el contenedor) pero no puedo modificarlas. De modo que cuando necesitan ser usadas en el segundo swf, no tienen el valor que conviene.

Estoy volviendo al LocalConnection porque parece ser que es la solución pero ahora me da éste error: Error #2082: La conexión falló porque el objeto ya está conectado.
¿Me podéis indicar por qué puede ser? Solo he abierto una conexión...

Por emedmaria

73 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Abr 2012 02:00 pm
Ya está. Me estaba complicando la vida de mala manera. Al final he optado por una opción similar a la sugerida por Abducted y he modificado los valores de las variables contenidas en el segundo swf.
Gracias!

Por emedmaria

73 de clabLevel



 

chrome

 

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