Estoy intentando ejecutar una función de AS3 que tengo en un flash llamándola desde javascript, he seguido este tutorial: http://www.cristalab.com/tutoriales/como-comunicar-flash-y-javascript-en-actionscript-3-c50326l/ y no parece un tema demasiado complicado pero no se por que no me funciona, he mirado varios tutoriales más por google y todos vienen a decir lo mismo, he probado hacerlo de diferentes maneras y nada...imagino que es un fallo de esos que te estas días y al final es una tontería que no veías pero por si alguien me puede ayudar a ahorrarme esos días aquí lo dejo el código de prueba que estoy haciendo:
AS3
Código ActionScript :
import flash.external.ExternalInterface; ExternalInterface.addCallback("sendToActionscript", callFromJavaScript); function callFromJavaScript(valor):void{ box.alpha=valor; }
Tengo un cuadrado con nombre de instancia box, la función funciona pues he probado de ejecutarla desde as3 y el objeto cambia su opacidad.
HTML
Código HTML :
<body> <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"> <param name="allowScriptAccess" value="always" /> <param name="movie" value="js-as3.swf" /> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <!-- Esta etiqueta param indica a los usuarios de Flash Player 6.0 r65 o posterior que descarguen la versión más reciente de Flash Player. Elimínela si no desea que los usuarios vean el mensaje. --> <param name="expressinstall" value="Scripts/expressInstall.swf" /> <!-- La siguiente etiqueta object es para navegadores distintos de IE. Ocúltela a IE mediante IECC. --> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="js-as3.swf" width="550" height="400"> <!--<![endif]--> <param name="quality" value="high" /> <param name="wmode" value="opaque" /> <param name="swfversion" value="6.0.65.0" /> <param name="expressinstall" value="Scripts/expressInstall.swf" /> <!-- El navegador muestra el siguiente contenido alternativo para usuarios con Flash Player 6.0 o versiones anteriores. --> <div> <h4>El contenido de esta página requiere una versión más reciente de Adobe Flash Player.</h4> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtener Adobe Flash Player" width="112" height="33" /></a></p> </div> <!--[if !IE]>--> </object> <!--<![endif]--> </object> <script type="text/javascript"> swfobject.registerObject("FlashID"); </script> <script type="text/javascript"> var flashObj = document.getElementById('FlashID'); flashObj.sendToActionscript(0.5); </script> <input type="button" onclick="flashObj.sendToActionscript(0.5);" /> </body>
Un saludo y gracias