versiones tutorial functions descargar as3 html actionscript-3 flash

html - tutorial - as3 syntax



Cómo notificar al contenedor HTML que el archivo SWF ha finalizado, utilizando swfobject (3)

Estoy incrustando un objeto flash (archivo swf) en una página HTML. El objeto está escrito en as3 y construido con Flash Builder. Su propósito es mostrar algo de animación, luego terminar.

Para mí es realmente importante poder notificar al contenedor que la animación ha finalizado, pero no encuentro nada que funcione. Estoy usando swfobject versión 2.2 .

Intenté ambos en Chrome 40 e IE 11.

HTML (muestra):

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> <script type="text/javascript" src="js/swfobject.js"></script> <script type="text/javascript"> function flashFinished() {alert(''finished!'');} </script> <script type="text/javascript"> var flashVars = {} var flashParams = {allowscriptaccess : ''sameDomain''} var flashAttributes = {id : ''myflash'', name : ''myflash''} swfobject.embedSWF(''myflash.swf'', ''flashObject'', ''960'', ''720'', ''9.0.0'', ''swf/expressInstall.swf'', flashVars, flashParams, flashAttributes); </script> </head> <body> <div id="flashObject"> <p>To view this page please make sure that an updated version of Adobe Flash Player is installed.</p> </div> </body>

AS3 (muestra):

package { public class myflash extends Sprite { public function myflash() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; startPlay(); } private function startPlay() : void { // do whatever, then make sure function finishPlay is called in the end } private function finishPlay(event:TimerEvent) : void { if (ExternalInterface.available) ExternalInterface.call(''flashFinished''); } } }

Mi función "flashFinished" nunca se llama. ¿Alguien puede sugerir qué estoy haciendo mal? ¡Gracias!


En caso de que el trabajo del código flash esté listo y ya no lo necesite, simplemente finalice el javascript en as3:

var exitStr:String = "javascript:terminate()"; navigateToURL(new URLRequest(exitStr),"_self");

Y luego agregue una función onUnload en HTML que se llamará en ese momento:

onUnload="flashFinished();"

nota: utilicé este código con swfobject v1.4 no estoy seguro acerca de v2.2



Para evitar que Flash Player bloquee su swf local para acceder a una URL externa (internet, ...) o para comunicarse con javascript u otras acciones que usen generalmente un error de violación de zona de pruebas de seguridad, debe agregarlo (swf) a la lista de ubicaciones confiables como esta:

Para Flash Player PPAPI (como Opera y Chrome):

  • Haga clic derecho en su swf abierto en el navegador, luego Configuración global ... :

Que abrirá esta página .

  • Luego, como se menciona en la imagen, haga clic en Editar ubicaciones ... cuadro combinado y Agregar ubicación , que le proporcionará esta casilla:

Simplemente tiene que escribir su ubicación swf, o su directorio padre, o simplemente toda la partición como lo que hice en la imagen. Intenta evitar los botones "Buscar ...", a veces no funciona (al menos para mí). Confirma y cierra la página y actualiza la de tu swf.

Para Flash Player ActiveX (como IE) y NPAPI (como Firefox):

  • Haga clic derecho en su archivo SWF abierto en el navegador, luego Configuración global ... , también puede ir al panel de control de su sistema y abrir Flash Player :
  • Luego, vaya a la pestaña Avanzado y haga clic en el botón Configuración de ubicación de confianza ...
  • Luego debe agregar la ubicación swf usando el botón Agregar .. > Agregar archivo ... o Agregar carpeta ... botón > seleccionar su archivo / directorio o partición y presionar Aceptar , Confirmar y cerrar todos los cuadros de diálogo.

Entonces solo tienes que actualizar tu página.