Escribo para consultarlos por un problema que estoy teniendo en la comunicacion desde AS3 a JS. No sabia si publicar en Javascript o acá, pero me parece que es mas apropiado acá.
El tema es el siguiente: Desde AS3 mediante ExternalInterface.call() llamo una funcion javascript. Esto funciona perfectamente en IE, Chrome, Opera y Firefox siempre y cuando no sete wmode en transparente. Cuando pongo wmode en transparent la comunicacion falla en firefox.
Para cargar el swf utilizo SwfObject.
Simplificando el codigo lo maximo posible tengo:
INDEX.PHP
Código:
TEST.SWF<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Test</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> <style type="text/css"> * { padding: 0; margin: 0; } body { background-color: #CCC; } </style> <script type="text/javascript" language="javascript"> //<![CDATA[ function showText(){ alert("Lorem ipsum dolor sit amet, consectetuer adipiscing elit."); } //]]> </script> </head> <body> <div id="swf"></div> <script type="text/javascript" language="javascript"> //<![CDATA[ var f = {}; var p = {'allowScriptAccess':'always', 'wmode':'transparent'}; var a = {}; swfobject.embedSWF("test.swf", "swf", 400, 300, "9.0.0", null, f, p, a); //]]> </script> </body> </html>
Código:
En el index, si uso:import flash.external.ExternalInterface; ExternalInterface.call("showText");
Código:
en lugar de:var p = {'allowScriptAccess':'always'};
Código:
funciona perfecto.var p = {'allowScriptAccess':'always', 'wmode':'transparent'};
Insertando estaticamente el swf, si funciona con wmode transparent. Por lo que el problema esta en el uso SwfObject. Según lo que he estado leyendo y verifique con firebug es que el SwfObject no genera los tag Embed.
Gracias desde ya.
Saludos