Utilizar fscommand() para comunicar Flash con otras aplicaciones

0 - , - 10/05/2005 00:00:00

Podemos comunicar Flash con otras aplicaciones como Visual Basic, Visual C++, y similares con fscommand(). También se puede usar para, simplemente, pasarle parámetros a un HTML. Yo lo he utilizado alguna vez para comunicar una interfaz realizada en Flash con un aplicativo en Visual Basic. El procedimiento es el siguiente:

1.- En un documento nuevo creamos un boton y le asignamos como nombre de instancia "btn1"
2.- A un fotograma le asignamos la siguiente acción:

btn1.onPress = function ()  {
          url = "javascript:showAlert('Te he dicho que no aprietes')";
          getURL(url);
}

3.- Publicamos el Flash y el HTML desde Flash, éste último con la opción fscommand() seleccionada

fscommand

Si visualizas el código fuente del html publicado notarás que ha insertado un código en javascript como el que sigue:

<script language="JavaScript">
<!--
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Gestionar todos los mensajes de FSCommand de una película Flash
function fscommand_DoFSCommand(command, args) {
var fscommandObj = isInternetExplorer ? document.all.fscommand : document.fscommand;
//
// Introduzca su código aquí.
//
}
// Ancla para Internet Explorer
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub fscommand_FSCommand(ByVal command, ByVal args)\n');
document.write(' Call fscommand_DoFSCommand(command, args)\n');
document.write('End Sub\n');
document.write('</script\>\n');
}
//-->
</script>

4.- Y ahora el último paso. Sólo nos queda insertar la función de Javascript (en nuestro caso un sencillo showAlert) a la que pasamos los parámetros desde Flash. En el anterior código hay un comentario que nos indica "// Introduzca su código aquí.". Pues bien, según mi experiencia y si quieres que la cosa funcione con Mozilla. No debes insertar el código ahí sino antes de la etiqueta de cierre . Con lo que nos quedaría:

<script language="JavaScript">
<!--
var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Gestionar todos los mensajes de FSCommand de una película Flash
function fscommand_DoFSCommand(command, args) {
var fscommandObj = isInternetExplorer ? document.all.fscommand : document.fscommand;
//
// Introduzca su código aquí.
//
}
// Ancla para Internet Explorer
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
document.write('<script language=\"VBScript\"\>\n');
document.write('On Error Resume Next\n');
document.write('Sub fscommand_FSCommand(ByVal command, ByVal args)\n');
document.write(' Call fscommand_DoFSCommand(command, args)\n');
document.write('End Sub\n');
document.write('</script\>\n');
}
//-->
function showAlert(ms)
{
alert(ms);
}
</script>
Ver Ejemplo en funcionamiento » »
Descargar Ejemplo » »

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha