Refrescar datos de un .swf con datos dinámicos XML Imprimir
SOFTWARE - Programación
Martes, 04 de Agosto de 2009 21:17
En este artículo encontrarás una sencilla forma de hacerlo...

Refrescar datos de un .swf con datos dinámicos XML

Flash es una potente herramienta destinada a la creación y edición de contenido interactivo, por tanto nos permite mostrar datos obtenidos de una fuente exterior de manera dinámica. Es fácil refrescar esos datos cuando el vídeo se encuentra embebido en una página web simplemente pulsando F5, pero cuando se trata de un vídeo con extensión .swf y se presenta directamente en un equipo y en pantalla completa ¿qué podemos hacer para recargar los nuevos datos?

Es sencillo, simplemente basta con cerrar el reproductor de flash y volver a abrirlo, al hacerlo se cargará el vídeo con los nuevos datos, pero, ¿y si queremos que se haga de manera automática y cada cierto tiempo?

Hace poco yo me encontré con ese problema, además tenía que volver a generar los datos que quería mostrar en el flash, empleé mucho tiempo buscando en internet una posible solución y no conseguí demasiado, finalmente se me ocurrió una forma de hacerlo. Probablemente haya más y mejores, pero esta es realmente sencilla y, una vez encontrada la forma de hacerlo, no requiere emplear demasiado tiempo.

 

Especificaciones particulares del caso de ejemplo

En nuestro caso obtenemos los datos a mostrar desde una URL que nos devuelve un XML, por lo tanto en primer lugar tenemos que guardar ese XML en un fichero de nuestro equipo, para ello usaremos wget (aplicación gratuita).

Una vez que tenemos actualizados los datos sólo nos queda que el flash los coja y los muestre, en un principio parecía que con un simple fichero de procesamiento por lotes (.bat) que “matase” el proceso y volviese a ejecutar el vídeo, y lanzarlo con una tarea programada de windows iba a ser suficiente, al probar con esa opción me di cuenta de que a veces no daba tiempo a actualizar los datos antes de lanzar el nuevo flash. Así que opté por buscar otras formas de “matar” el proceso del flashplayer y relanzar el vídeo.

En este momento descubrí batchrun, un programa gratuito que permite escribir ficheros de procesamiento por lotes con extensión .brs de manera sencilla e incluso dar un tiempo de espera entre un comando y el siguiente.

 

Generar .brs con batchrun

Esta sencilla aplicación nos permitirá olvidar escribir ficheros batch línea a línea, así pues podremos generar un fichero de procesamiento por lotes con unos cuantos clicks.

Antes de pasar a explicar el uso de este programa, es conveniente saber lo que es un fichero batch o de procesamiento por lotes, una explicación sencilla vendría a decir que son ficheros de texto sin formato que contienen comandos MSDOS. Al ejecutar el fichero .bat, que es la extensión que tienen estos ficheros, los comandos que hay escritos en ellos se van ejecutando secuencialmente.

Pues esa era la idea, ejecutar una serie de comando de MSDOS automáticamente y cada cierto tiempo. La secuencia de comandos sería la siguiente:

1.      Actualizar el fichero XML con los nuevos datos.

2.      Cerrar el proceso del flashplayer

3.      Ejecutar el fichero .swf para volver a ver el vídeo flash.

Esta parte era sencilla de escribir en un .bat pero no era tan versátil como el .brs que genera batchrun.

En la pantalla principal del batchrun se dan los parámetros necesarios para que el programa escriba su .brs con lo que queremos que haga. En este caso, el primer paso será ejecutar (Run) wget con los parámetros deseados (en el campo parameter) para que guarde en el equipo una copia del XML obtenido de la aplicación web que lo genera.

Una vez rellenados los campos insertamos este comando con sus parámetros en el fichero con el botón Add y continuamos con el siguiente comando que queremos que se ejecute, en nuestro caso “matar” el proceso del flashplayer (volvemos a añadir).

Por último queremos lanzar de nuevo el flash que mostramos con los datos nuevos, pero para que no haya problemas con la actualización del XML estableceremos un retardo de 500 ms, esta opción se parametriza desde el campo Delay y se puede retardar de medio segundo en medio segundo.

 

Una vez que tenemos todos los comandos que necesitamos sólo queda guardar el fichero con el nombre deseado y crear una tarea programada de Windows para que ejecute el .brs cada cierto tiempo.