Comunidad de diseño web y desarrollo en internet online

Problema de comunicación entre 2 swf

Citar            
MensajeEscrito el 26 Dic 2011 01:11 pm
Hola:

llevo unos días intentando que un swf se comunique con otro en el que lo tengo incrustado. Este swf es un menú dinámico que carga los datos desde XML basado en el que tenéis por aquí en un tutorial, pero le he modificado el código para que pase de ser un ejemplo a algo práctico; y he debido hacer algo mal, porque no funciona como debe: carga bien los datos del XML y se muestra bien en el otro swf, pero al clickar en los botones me aparece un "SecurityError: Error #2000: No hay ningún contexto de seguridad activo" (esto pasa inclusocuando lo ejecuto independientemente) y, por supuesto, de llamar a la función que debe, nada de nada.
Os dejo aquí el código que le he insertado en el fotograma 1, por si alguien me puede orientar sobre lo que estoy haciendo mal (el resto creo que es exactamente igual que el de vuestro tutorial):

import flash.net.LocalConnection;

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlComplete);
loader.load(new URLRequest("xml/subMenu.xml"));

//aquí se crea el menu
function xmlComplete(e:Event):void
{
var myXML:XML = new XML(e.target.data);
var menu:Sprite = new Sprite();

addChild(menu);

for (var i:int = 0; i < myXML.boton.length(); i++)
{
var tmp:Boton = new Boton();
tmp.titulo.texto_txt.text = myXML.boton[i].@texto;
tmp.x = 170 * i;
tmp.ruta = myXML.boton[i].@seccion;
tmp.addEventListener(MouseEvent.CLICK, create(onClick, tmp.ruta));
menu.addChild(tmp);
}
}

//esta función permita añadir argumentos al evento
function create(handler:Function, ...args):Function{
return function(...innerArgs):void{
handler.apply(this, innerArgs.concat(args));
}
}

function onClick(e:MouseEvent,arg1:String):void
{
//para comprobar que la variable pasa
trace(arg1);
//y aquí se envía
var con:LocalConnection;
con = new LocalConnection();
con.send('miConexion','methodName','arg1');

}

Se agradece por adelantado cualquier ayuda que me podáis prestar, porque ya os digo que llevo varios días liado con ello y no consigo solucionarlo.

Un saludo.

Por elhechizero

1 de clabLevel



 

msie8
Citar            
MensajeEscrito el 26 Dic 2011 01:43 pm
¿Ambos swf están en el mismo dominio? ¿Está trazando bien la ruta?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Dic 2011 01:52 pm
Si, están en la misma carpeta. Incluso he probado a añdir una línea

con.allowDomain("*");

Y en vez de con el asterisco como parámetro, con "localhost". Y cambiando allowDomain por allowInsecureDomain, pero no hay forma.

Por elhechizero

1 de clabLevel



 

msie8
Citar            
MensajeEscrito el 26 Dic 2011 01:54 pm
Por cierto el "trace (arg1)" lo hace bien pero...

Por elhechizero

1 de clabLevel



 

msie8
Citar            
MensajeEscrito el 26 Dic 2011 02:06 pm
En vez de botones, usa MovieClips, guarda la ruta en el MovieClip mismo, usa on evento CLICK standard sin el la función create, y usa event.target para recuperar la URL desde el MovieCLip

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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