Está usted en Indice > Construcción > Lenguajes > JavaScript > Lecciones y Paso a Paso > Cómo comunicar Flash y JavaScript en ActionScript 3
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Cómo comunicar Flash y JavaScript en ActionScript 3

En ciertas ocasiones, necesitamos comunicar Flash con JavaScript, para eso estábamos acostumbrado a usar fscommand(), y más recientemente la clase ExternalInterface, que está disponible desde Flash 8, y también en ActionScript 3, con algunos cambios.


La clase ExternalInterface sustituye por completo a fscommand() y es de uso recomendado desde la nueva versión de ActionScript y está disponible en:


  • Internet Explorer para Windows (5.0 y versiones posteriores)
  • Firefox 1.0 o posterior
  • Mozilla 1.7.5 o posterior
  • Netscape 8.0 o posterior
  • Safari 1.3 o posterior
  • además de una aplicación contenedora que utilice una instancia del control ActiveX de Flash Player.

En todo caso para saber si tenemos o no la posibilidad de usar esta clase, siempre podremos recurrir a:

Código :

trace(ExternalInterface.available);
Si retorna true, es porque andamos en el camino correcto.

Sobre las mejoras con respecto a fscommand(), cito a la ayuda de ActionScript:

  • Se puede utilizar cualquier función de JavaScript, no sólo que se usan con la función fscommand().
  • Se puede pasar un número arbitrario de argumentos y los argumentos pueden tener el nombre que se desee; no existe la limitación de pasar un comando con un único argumento de tipo cadena. Esto hace que la API externa sea mucho más flexible que fscommand().
  • Se pueden pasar diversos tipos de datos (como Boolean, Number y String); ya no se está limitado a los parámetros de tipo String.
  • Se puede recibir el valor de una llamada y ese valor vuelve inmediatamente a ActionScript (como valor devuelto de la llamada que se realiza).

Bien, ahora al código, lo primero que haremos es importar la clase necesaria para poder trabajar con ExternalInterface (trabajaremos todo el código en el FLA). Además crearemos un campo de texto dinámico llamado "campo".

Código :

import flash.external.ExternalInterface;

Ahora para poder llamar una función de JavaScript, utilizamos el método call, que recibe el nombre de dicha función:

Código :

campo.text = String(ExternalInterface.call( "saludar" ) );

Le hacemos un casting a String para poder ponerlo en el campo de texto dinámico.

En el HTML tendríamos:

Código :

function saludar(){
   return ("Hola gente");
}

Pueden ver el ejemplo aquí



Usuarios que han visto este tema también han visto...

- Verificación del contenido de un formulario
- Tabla de colores con Javascript
- Previsualizar una imagen antes de subirla en JavaScript
- Objetos en JavaScript
- Contadores de Fecha


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 22-11-2008 a las 08:28:57