El presente tutorial muestra la forma en que podemos relacionar de cierta forma a Flash MX con Visual FoxPro. Aprovechandoo que FoxPro nos permite incluir el control ActiveX de Flash (Shockwave Flash Object) procederemos a hacer una especie de menú con efectos para crear un formulario especial.
Objetivos:
- Activar el control ActiveX de Flash MX (Shockwave Flash Object) para poder introducir una pelicula Flash a un formulario.
- Ejecutar aplicaciones de FoxPro ( Formularios, Menús, etc.) desde un botón hecho en Flash MX.
- Controlar una pelicula Flash desde FoxPro.
Requerimientos:
- Conocimientos básicos sobre visual FoxPro 6.0 ó superior.
- Una mente abierta.
Previsualización de lo que se pretende hacer:
Lo que se pretende hacer es una especie de menú, del que se derivan varias opciones al presionarlo (submenús), con un efecto de aparición. El menú principal es un botón hecho en FoxPro, y el submenú es un conjunto de botones que aparecen con un efecto especial, los cuales deben de comunicarse con los formularios correspondientes. En el momento de ejecutar el formulario solamente debe de aparecer el menú principal, por lo que el submenú (los botones hechos en flash) deben de estar invisibles en ese momento , para que al momento de presionar el botón principal, el submenú aparezca con el efecto de aparición, para ello controlaremos el submenú stop(); play(); desde FoxPro.
Trabajando Con Flash
Preparando el escenario. Solamente vamos a colocar el color de fondo de la película igual al color de fondo de nuestro formulario el cual es #0080C0. Le daremos un tamaño adecuado para un botón, Ancho 180 y Alto 50.
Ya que se pretende hacer un efecto de aparición, dejaremos vacío al primer fotograma, (no debe de tener ningun objeto dibujado, para que esté invisible al momento de ejecutar el formulario) luego insertamos un segundo fotograma (keyframe), y en él dibujamos un botón cualquiera, el cual será nuestro submenú1. Luego damos clic derecho sobre el fotograma #10, y elegimos la opción "Insertar Fotograma Clave" (Insert Keyframe), ahora creamos una nueva capa, la cual será el efecto de aparíción de nuestro submenú, vamos fotograma #2 de la Capa 2 y elegimos la opción "Convertir en Fotogramas Clave" y dibujamos un rectangulo a manera que cubra el botón que dibujamos, el rectángulo debe de tener el mismo color que la pelicula, #0080C0. Una vez hecho seleccionamos el cuadro y lo agrupamos (Ctrl+G) y vamos a seleccionar el fotgrama #10 de la Capa #2, y lo convertimos en fotograma clave, ahora movemos el rectangulo (el del fotograma #10) hacia la derecha (a modo de que se vea el botón completo), damos clic derecho en el fotograma 2 de la Capa 2 y elegimos "Crear interpolación de movimiento". Una vez hecho ésto le damos la acción de stop(); al fotograma #10 de la Capa 2. Éste es un efecto de aparición muy sencillo, aquí depende de vuestra creatividad para hacer efectos más complejos.
Código de el Botón (Submenu1).
Éste código vá en el fotograma #10, en el botón Submenú1 (el cual debe de abrir un formulario correspondiente).on (release) {
fscommand("");
}
¿Por que Fscommand(""); ?
Ahora guardemos nuestra película como "submenu1" en el directorio siguiente "C:ejemplo" y la publicamos (Ctrl + Enter). Éste será un botón de el submenú correspondiente, por el momento hagamoslo sólo con un botón como submenú, si quereís hacer otros botones para que el submenú sea más grandecito, entonces basta con darle (Ctrl+Mayus+S) y cambiar la etiqueta "Submenu-1"del botón por Submenú-2, y asi sucesivamente con los botones que quieras hacer, y siempre guardar la película en la mísma carpeta donde está guardada la película "Submenu1" con nombre submenu2, submenu3,...hasta el submenu que hayas hecho, y siempre con la misma acción Fscommand ("");.
Sencillo, quien es el encargado de abrir un formulario es FoxPro mediante los procedimiento de el Control ActiveX de Flash. En el codigo de el botón "Submenu1" no podría ir [ DO FORM SUBMENU1.SCX ], xDDD, sería una locura!! Flash no entiende eso, asi que solamente lo dejamos: Fscommand(""); ya que en FoxPro el procedimiento Fscommand de la pelicula (Submenu1) detecta si se ejecuta un Fscommand en la pelicula .swf y por lo tanto ejecutará el código que hay dentro el procedimiento Fscommand de la pelicula submenú1, ¿confuno no?, pues para entenderlo mejor, vamos a lo siguiente...
Trabajando con Visual FoxPro
Creamos un nuevo formulario, y le colocamos el color de fondo: 0,128,192, una etiqueta (label), para identificarlo como el formulario principal, y por último un command buttom, el cual será nuestro menú principal, a manera de que nuestro formulario tome la forma de el formulario que aprece mas arriba. Una vez hecho ésto, lo guardamos con el nombre de "formulario-pral" en el mísmo directorio en el que guardamos nuestra película Flash (submenu1). Ahora hacemos un nuevo formulario sencillo (el cual se ejecutará al presionar el botón submenu1 de nuestra pelicula Flash), y le colocamos una etiqueta, en ella podemos poner cualquier texto que nos indique que es el formulario que se debe de abrir al presionar el boton submenu1, en mi caso le puse "Formulario correspondiente al submenu 1",y así sucesivamente según los botones submenús que hemos creado, (si solo has hecho un botón como submenú no improta, puedes hacerlos después para hacer mas complejo nuestro formulario), luego lo guardamos el formulario con el nombre de "formulario1" en el mismo directorio y procederemos a activar el control ActiveX de Flash.
- Ir al menú "Herramientas", y elegir "Opciones".
- Elegir la pestaña "Controles".
- Activar la casilla "Controles ActiveX".
- Seleccionar el control de Flash (Shockwave Flash Object) y dar clic en "Aceptar".
Ahora vamos a ver la barra de herramientas de controles de formularios, ubiquemos el icono de un librito...¿lo ves?, bien entonces,
damos clic sobre él, y elegimos la opción "Controles ActiveX", verás un cambio en la barra de herramientas, solo aparecen 5 elementos, pero el que necesitamos es el que tiene forma de martillo (Shockwave Flash Object), lo seleccionamos y dibujamos un rectangulo en un area de nuestro formulario. Le damos clic derecho --> Propiedades, y configuramos en ancho y el alto de ese objeto (tiene que ser el mismo tamaño que le dimos a nuestro Submenu1.swf (180 x 50), ahora buscamos la propiedad "Movie" y en el bloque de texto escribimos la ruta en la que se encuentra nuestro archivo .swf, en este caso es C:ejemplosubmenu1.swf. Una vez linkeado nuestro botón submenu1.swf, procederemos a ponerle un nombre, elegimos la propiedad "Name" y escribos: "submenu1" sin comillas.
Código de la película (submenu1).
Damos doble clic sobre el objeto que dibujamos con el martillo (la pelicula submenu1), y nos aparecerá en el procedimiento Init de la pelicula submenu1 asi que pondremos el siguiente codigo:
thisform.submenu1.stop *Aqui le decimos a la pelicula que se detenga. Ya que el primer fotograma está vacío, no se verá nada...
Ahora damos clic en el procedimiento Init, para que se nos despliegue una lista de procedimientos y elegimos el "Fscommand", y ahí colocaremos el siguiente codigo:
do form formulario1.scx *Lo que sucede aquí es que cuando se dé un fscommand en nuestra pelicula (submenu1.swf), se ejecutará éste código para abrir el formulario correspondiente, el cual es formulario1.scx, por eso colocamos en las acciones del botón de nuestra pelicula un fscommand sencillo (Fscommand (""); ya que lo que le interesa a Fox es saber mediante le procedimiento Fscommand si se dá un fscommand en flash, para asi ejecutar la accion que hay dentro de Fox (do form formulario1.scx) y no en el action script.
El último paso de todo esto, es colocar el codigo al boton que es el menú principal, para que al presionarlo se reproduzca el submenu1, y se cumpla el efecto de aparicion. Damos doble clic al boton y nos aparece en el procedimiento "Clic", si no es asi entonces hay que elegirlo de la lista de procedimietos y colocamos el siguiente code:
thisform.submenu1.play *Aqui le decimos a la pelicula submenu1 que se reproduzca.
Antes de ejecutar nuestro formulario, debemos teclear en la ventana de comando de Visual FoxPro, SET DEFAULT TO c:ejemplo ó SET DEFA TO c:ejemplo según la versión de Visual FoxPro que tengamos (ésto es para que Fox se ubique en nuestra carpeta y nó nos dé un error en el momento de ejecutar el formulario1), Ahora bien, a ejecutar nestro formulario principal! (Ctrl+E).
De ésta forma podemos duplicar nuestra película (submenu1), para crear varios botones (submenu 2,3,4,..) y así nuestro formulario se verá mejor con menú complejo (con varios submenús), de igual forma depende de vosotros, averiguar para que sirven los difentes procedimientos y propiedades de una pelicula flash.
Te habrás hecho la pregunta, ¿Por qué hacer varios botones en diferentes películas, pudiendolos hacer todos en una sola película?, pues el problema es que FoxPro sólo detecta un Fscommand por película, para poder ejecutar la sentencia que esté dentro de el procedimiento (Fscommand) de la película insertada en el formulario.
Conclusión
El control ActiveX de Flash, nos permite controlar varios aspectos de una pelicula insertada en un formulario de Visual FoxPro, mediante los procedimientos y propiedades que éste nos ofrece. Aunque parece ser de que es más uso de FoxPro que Flash MX, es necesario saber, lo que se puede hacer combinando a ambas aplicaciones, para poder realizar sistemas (Visual FoxPro), con efectos especiales (Macromedia Flash MX); ya que por lo general los proyectos hechos en FoxPro, contienen una interfáz gráfica muy sencilla (botones, labels, combox, grid,etc.) y podemos darle mayor realce insertando botones o animaciones con grandes efectos en Flash, lo que lo haría un sistema especial. Por de pronto seguiré investigando las propiedades y procedimientos de el control ActiveX de Flash, para poderles traer la segunda parte de este tutorial.
David González (Daredavid)
[email protected]
http://www.cristalab.com/
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Publica tu comentario
El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro
Entra al foro y participa en la discusión
o puedes...
¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?
Inicia sesión
¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?
Registrate