Admin
 
 
Logo DIPLOX
Utilizar fscommand() para comunicar flash con otras aplicaciones
Volver Por patu
  
Viernes, 25/09/2009
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

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 Nextn´);
document.write (´Sub fscommand_FSCommand (ByVal command, ByVal args)n´);
document.write (´ Call fscommand_DoFSCommand (command, args)n´);
document.write (´End Subn´);
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 Nextn´);
document.write (´Sub fscommand_FSCommand (ByVal command, ByVal args)n´);
document.write (´ Call fscommand_DoFSCommand (command, args)n´);
document.write (´End Subn´);
document.write (´</script>n´);
}
// -->
function showAlert (ms)
{
alert (ms);
}
</script>


Volver Por patu