MetaCard y Revolution: Herramientas de autor multiplataforma para multimedia | ||
---|---|---|
Anterior | Capítulo 6. Interfaz: controles complejos y procesos externos | Siguiente |
Es posible lanzar aplicaciones externas desde dentro de MetaCard con las órdenes shell, launch y open process, ya lo hemos visto en la sección de nombre Aplicaciones externas en Capítulo 5. Veamos ahora cómo se puede interactuar con estas aplicaciones.
Es posible además de lanzar (ejecutar) aplicaciones externas, comunicarse con ellas. Esto es, recoger su salida estándar o proporcionarle datos en su entrada estándar en cualquier sistema operativo. Sólo es necesario que la aplicación escogida esté preparada para ello.
Y, además, puede utilizar librerías de funciones desarrolladas en otros lenguajes de programación.
A modo de ejemplo, vamos a realizar un pequeño interfaz visual para las funciones de la librería NetPBM. Esta és un conjunto de funciones de procesado de imágenes construída sobre
Aviso |
Falta ficar un esquema de la aplicació en els noms dels objectes ... |
pgmAccio local nomProcess = "sh ", ordreAExecutar = "pgmcrater > /tmp/algo.pgm" on menuPick novaOpcio anteriorOpcio -- put anteriorOpcio && ">" && novaOpcio # set the label of me to novaOpcio -- No fa falta si esta activa l'opcio de "mostar el nom" (Show Name) set cursor to busy -- put "(" && nomProcess && ")" && ordreAExecutar set the contingut of field "eixida" to empty open process nomProcess write ordreAExecutar & return & "exit" & return \ to process nomProcess read from process nomProcess until eof -- handshake in 5 seconds set the contingut of field "eixida" to it close process nomProcess set the fitxerAMostrar of image "resultat" to "/tmp/algo.pgm" end menuPick oritge on mouseUp send "mouseUp" to button "Examinar ..." end mouseUp fitxerOritge on returnInField send "mouseUp" to button "Examinar ..." end returnInField resultat setprop fitxerAMostrar x set the fileName of me to empty set the fileName of me to x -- put the fileName of me end fitxerAMostrar Examina on mouseUp answer file "Tria una imatge ..." if the result is not "Cancel" then put it into field "fitxerOritge" set the filename of image "oritge" to it end if end mouseUp
Procesos largos (en duración temporal) que deben ofrecer la oportunidad de ser interrumpidos.
Figura 6-11. Detalle de la aplicación donde se muestran los controles que implementan la secuencia de pasos y el de parada del proceso.
Puede ser interesante que las tareas se realizen pero que se obtenga una realimentación visual del punto en que está el proceso global.
Esta es una segunda aproximación a la barra de menús de la que se habló en el apartado de "scrolls".