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 (2)

Si queremos pasar un parametro (o más) desde Flash, agregamos al código Actionscript:

Código :

campo.text = String(ExternalInterface.call("saludar1","zguillez"));

Y en el html:

Código :

function saludar1(nombre){
   return ("Hola "+nombre);
}

Pueden ver el ejemplo aquí

Bien, hasta aquí vimos como llamar a una función JavaScript desde ActionScript y poder mostrar el resultado en un campo de texto dinámico. Ahora haremos el proceso al revés , llamaremos de JavaScript a una función de ActionScript.

En este ejemplo, llamaré desde el body:
<body onload="cambiaTitle()">
A una función que mostrará un Alert y este a su vez, llamará a una función ActionScript.

Para este propósito usaremos el método addCallback que recibe dos parámetros, el primero es el nombre de la funcion de javascript en string y el segundo, el nombre de la función de ActionScript que ejecutaremos (tiene que ser función).

Código :

var nombre:String = "usagi";
function callMe():String {
   return nombre + "_" + Math.random() * 100;
}
ExternalInterface.addCallback("callJavaScript", callMe);

He creado una funcion callMe que retorna un String (lo enviará a JS) donde tomará la variable nombre y le agregará un número aleatorio (sólo para efectos del ejemplo)

Y en el HTML escribo:

Código :

function cambiaTitle(){
   alert(ejemplo3.callJavaScript());   
}

Pueden ver el ejemplo aquí

Cuando hacemos este proceso debemos tener en cuenta algunas cosas importantes:

El Object debe tener el id igual al que usamos al momento de invocar la función javascript

<object id="ejemplo3" ... >
<param name="allowScriptAccess" value="always" />


Lo mismo sucede con el embed
<embed name="ejemplo3"
allowScriptAccess="always" ...

Estos cambios deben de hacerse, sino no funcionaría. Asimismo, cambiar el parametro allowScriptAccess a always

Los id y name deben ser los mismo que utilizamos en JS para poder identificar con quien quieres interacturar:
alert(ejemplo3.callJavaScript());


Por otro lado, también podemos además devolver desde JavaScript una respuesta.

Sólo tenemos que recibir un parámetro en nuestra función de ActionScript:

Código :

var nombre:String = "Mariux: ";
function callMe(name:String):String {
   return nombre + name;
}
ExternalInterface.addCallback("callJavaScript", callMe);



Y pasar el mensaje desde JavaScript:

Código :

function cambiaTitle(){
   alert(ejemplo4.callJavaScript("Mensaje desde JAVASCRIPT"));   
}

pueden ver el ejemplo aquí

Hemos visto las formas como poder utilizar la clase ExternalInterface de una manera simple, limpia y fácil. Espero les sirva.




Autor: eldervaz
http://www.cristalab.com/tips/50326/como-comunicar-flash-y-javascript-en-actionscript-3

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

- Lincar páginas a archivos JavaScript
- Prueba ultima modificación
- Cambio de Imagen en JavaScript
- Abrir Popup
- Etiqueta desplazándose por el explorador en JavaScript


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






Cursos de Community Manager

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

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


Página generada el 25-05-2012 a las 22:37:52