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.