MetaCard y Revolution: Herramientas de autor multiplataforma para multimedia | ||
---|---|---|
Anterior | Capítulo 4. Objetos y controles básicos | Siguiente |
El mecanismo básico de utilización de archivos de audio y animación está soportado por la instrucción play, pero la complejidad de estos archivos y la necesidad de mantener el tamaño del motor de una herramienta de autor en unos valores mínimos hacen recomendable poder descargar esta tarea en aplicaciones externas.
Para ver el funcionamiento de este objeto recurriré a un extracto del ejemplo didáctico, que sobre MetaCard realizó Antonio Serrano. La aplicación completa muestra algunos aspectos de MetaCard: controles básicos y ejemplos de código en funcionamiento. La Figura 4-24 muestra una sencilla botonera para controlar el vídeo que se reproduce en el centro de la misma. Obsérvese que el nombre se ha fijado, pero no se ha importado en la pila, si no que se incorpora desde el sistema de archivos en disco en el momento de la ejecución, lo que permitirá cambiarlo entre dos ejecuciones diferentes. Esto se muestra en el siguiente código:
# # La tarjeta ("clip") global nomvideo on preOpenCard hide group aviso put " " into field vol put "video1.avi" into nomvideo put " " into field instruccion end preOpenCard on closeCard play stop videoClip "videos\" & nomvideo end closeCard
Los controles específicos del vídeo son implementados con una intrucción que es copiada en un campo de mensajes para apoyar la parte didáctica de la aplicación. Así tenemos:
# # Botón "play" global nomvideo on mouseUp play videoClip "videos\" & nomvideo put "play videoClip <nombre>" into field instruccion end mouseUp # # Botón "looping" global nomvideo on mouseUp play videoClip "videos\" & nomvideo looping put "play videoClip <nombre> looping" into field instruccion end mouseUp # # Botón "stop" global nomvideo on mouseUp play stop videoClip "videos\" & nomvideo put "play stop videoClip <nombre>" into field instruccion end mouseUp # # Botón "pause" global nomvideo on mouseUp play pause videoClip "videos\" & nomvideo put "play pause videoClip <nombre>" into field instruccion end mouseUp # # Botón "resume" global nomvideo on mouseUp play resume videoClip "videos\" & nomvideo put "play resume videoClip <nombre>" into field instruccion end mouseUp # # Botón "back" global nomvideo on mouseUp play step back videoClip "videos\" & nomvideo put "play step back videoClip <nombre>" into field instruccion end mouseUp # # Botón "forward" global nomvideo on mouseUp play step forward videoClip "videos\" & nomvideo put "play step forward videoClip <nombre>" into field instruccion end mouseUp
Nota: Ah, permítame una liger observación: las barras invertidas ("\") deberían ser, simplemente, barras ("/") por aquello de realizar un producto multiplataforma. La utilización de turas relativas permitiría un fácil transporte de la pila de un espacio físico a otro en el sistema de archivos de la máquina.
Pero con el devenir de las versiones de MetaCard hemos visto aparecer el objeto "player", que permite dejar esta tarea en manos de aplicaciones específicas: Xanim en plataforma Unix™, Media Player o QuickTime en Windows™ y Macintosh™. La definición básica de este contenedor la podemos ver en la figura Figura 4-25.
Trabajar con estos controles es tanto o más sencillo que con la instrucción play. Ahora tenemos la posibilidad de fijar su posición en una tarjeta y los controles son más preciso. Un ejemplo simple de aplicación que dispone de un campo de texto (de nombre "y", un player (llamado "x") y un botón, cuya pulsación pone en marcha o para la reproducción del vídeo. En función del botón utilizado como se muestra a continuación:
# Botón if quinBoto es 1 then set the filename of player "x" to fld "y" start player "y" else stop player "y" end if