Los botones de Flash son objetos gráficos que pueden asignarse diferentes estados (normal, sobre, presionado) y acciones. Para crear un botón, se dibuja en el estado de reposo y se convierte en símbolo con nombre. Luego se edita el símbolo para diseñar los estados de sobre, presionado y zona activa. Finalmente, se insertan acciones en el panel de acciones para programar la funcionalidad del botón.
2. Para manipular un botón, primero debemos
saber que es:
Los botones de flash son objetos gráficos a
los que podemos asignar diferentes estados
(normal, sobre, presionado...) y que cuando los
pulsemos (o pasemos por encima), se ejecuten
determinadas acciones.
3. Para crear un botón podemos primero dibujarlo, por
ejemplo en el estado de reposo, y después
convertirlo en símbolo; para ello, una vez
seleccionado, elegimos el menú: "Insertar-Convertir
en símbolo". Debemos escribirle un nombre.
4. Si abrimos la biblioteca ("Ventana-
Biblioteca"), veremos que ya aparece
dentro:
5. Ahora debemos diseñar los diferentes estados del botón,
editando el símbolo. Para ello, haremos doble clic en el
icono del botón (en la biblioteca), o bien "botón derecho-
Editar", apuntando al botón que aparece en la escena.
En la línea de tiempos veremos que estamos modificando el
botón, no la escena:
6. Podemos apreciar que en vez de fotogramas normales, como
cualquier animación de flash, disponemos de cuatro fotogramas
"especiales":
Reposo: es donde colocaremos el botón con su aspecto normal, es
decir, cuando no está siendo apuntado por el ratón.
Sobre: es el aspecto que tendrá cuando el ratón se pasa por
encima, pero sin pulsar.
Presionado: se trata del botón mientras estamos pulsando el
ratón en él.
Zona activa: aquí definimos la zona donde el botón responderá al
ratón. Podemos crear un circular, pero que se active en una zona
rectangular, por ejemplo. Es muy importante en los textos, puesto
que si no se crear una zona activa, sólo se detecta el ratón cuando
está encima del trazo del texto en sí, no en el espacio entre
letras, ni en el medio de una letra "O", por ejemplo.
7. Para crear diferentes efectos en cada estado, podemos hacerlo de una forma
fácil pero efectiva, partiendo del mismo dibujo, y cambiando sólo el tono de
color, por ejemplo.
También podríamos trabajar con diferentes capas para crear otros objetos
dentro de cada estado, por ejemplo, en "sobre" podemos crear el típico
"letrero" de fondo amarillo, donde aparece una frase explicando el resultado
de pulsar el botón, o una pequeña animación del mismo botón, por ejemplo,
cambiando su tamaño, rotándolo, etc...
Debemos insertar un fotograma clave en la posición "Sobre".
9. Si bien hemos catalogado este tema como "básico", la palabra adecuada sería "necesario". pues si
bien el objetivo de este tema NO es enseñar programación, no podemos pasar por alto que ciertos
conceptos relacionados con ella deben conocerse para poder llegar a entender el ActionScript.
Vamos pues a explicar algunos conceptos fundamentales, necesarios para abordar la programación
mediante ActionScript.
Script: Código escrito en cualquier lenguaje de programación que realiza una tarea determinada.
Así por ejemplo, el código ActionScript necesario para que al pulsar un botón de Flash pasemos al
fotograma siguiente es un script.
Variable: Vamos a explicar la interpretación del término variable en programación mediante un
ejemplo sencillo.
Si tenemos la expresión: x = 3;
Tenemos que x es una variable que toma el valor 3. Se llama variable precisamente porque puede
cambiar de valor en cualquier momento durante la ejecución de nuestra película Flash. Todos los
datos que se manejan normalmente son variables (salvo aquellos constantes, por ejemplo el número
3). Así, en un formulario, el nombre es una variable (de tipo cadena de caracteres o string), el
apellido también, la dirección, el teléfono etc...
Expresión / Sentencia: Conjunto de operadores, constantes, variables o acciones. Provocan un
resultado o una acción determinada y SIEMPRE deben ir terminados por ' ; ' (punto y coma).
Función: Una función es una porción de código (ActionScript en nuestro caso) que tiene un nombre
determinado y que realiza una labor concreta. Ejemplo, la siguiente definición de función:
function IncrementaX(x) {
x = x + 1;
}
10. Realiza la función de tomar la variable "x" y sumarle uno a su valor. Si quisiéramos ejecutarla en algún
lugar de nuestra película, bastaría con escribir: "IncrementaX(x)", siempre y cuando la definición de la
función (que es el código mostrado arriba) esté en cualquier parte de la película que se ejecute ANTES
que la llamada a la función.
Acción: Flash llama Acción a funciones que él mismo ha implementado y que no requieren ser definidas
para ser usadas. Basta por tanto, con escribir la llamada a la función. Estas acciones son lo que
usaremos la mayoría de las veces, pues resultan sumamente fáciles de usar y muy potentes. Las acciones
aparecen en el Panel Acciones y se pueden insertar en nuestro código con un simple clic de ratón.
Por ejemplo "gotoAndPlay(3)" es una acción que provoca que Flash pase a ejecutar el fotograma 3.
Ahora que entendemos qué son las funciones, deberemos comprender también, que en alguna parte,
Flash ha definido la función "gotoAndPlay" (tal y como hemos hecho nosotros anteriormente con la
función "IncrementaX") y ha escrito un código que provoca el efecto ya comentado. Por suerte todo
esto no nos debe preocupar, Flash 8 se encarga de todo. Nos basta con conocer las acciones y saber
cómo usarlas.
Parámetro: Un parámetro es una variable que entra o sale de una acción o de una función. Ponemos un
ejemplo para clarificar esta definición:
Tenemos la siguiente definición de función:
function Suma5(p_entrada, p_salida) {
p_salida = p_entrada + 5;
}
Imaginemos que tenemos una variable x que vale 7 y otra variable y que queremos que valga 7 + 5.
Ejecutaríamos la función "Suma5" del siguiente modo: Suma5( x , y ). Vamos a ver qué hace
exactamente la función con los parámetros x e y.
Al ejecutar "Suma5( x , y)", Flash busca definiciones de funciones que se llamen Suma5, enseguida
encontrará la definición que hemos escrito arriba, (que deberá estar escrita en alguna parte de nuestra
película ANTES de ejecutar "Suma5( x, y )"). Cuando lo hace, comprueba que la función que ejecutamos
COINCIDE con la cabecera de la definición, esta cabecera abarca el nombre de la función y todo lo que
venga a continuación hasta que se cierre el paréntesis. En nuestro caso, la cabecera sería
"Suma5(p_entrada, p_salida)"
Aquí viene la pregunta inminente, ¿Coinciden?.
11. La respuesta es SÍ, para que coincidan DEBE coincidir el NOMBRE de la función y el número de
parámetros, que serán variables o valores separados por comas. Como tenemos 2 parámetros en cada
parte, todo coincide y pasa a ejecutarse la función. La función ejecutada es "Suma(x , y)", por lo que lo
que en realidad se ejecutará será:
function Suma5(x, y) {
y = x + 5;
}
Tras ejecutarse esta función, y valdrá lo que valiese x mas 5. Es lo que queríamos.
La variable 'x' ha actuado como parámetro de entrada, pues aporta un dato a la función, el valor 'y'
comienza entrando en la función, pero es un parámetro de salida porque ha sido modificado DENTRO de la
función.
Programación Orientada a Objetos (POO): ActionScript es un lenguaje orientado a objetos, esto quiere
decir que la información se organiza en grupos denominados clases. Cuando queremos emplear una clase en
nuestra película, usamos una instancia de ella, denominada OBJETO. Los objetos, y por tanto, las clases,
tiene Propiedades (características) y Métodos (comportamientos). Pongamos 2 ejemplos para clarificar
esto:
- El objeto Persona tiene:
- Propiedades: Nombre, edad, altura ...
- Comportamientos: hablar, correr, saltar ...
- El objeto Clip de Película tiene:
- Propiedades: color, anchura, altura ...
- Comportamientos: gotoAndPlay, Stop, Play, LoadMovie ...
Evidentemente el primer objeto es meramente didáctico, el segundo objeto es un objeto de Flash (salvo
que las propieades están definidas en inglés), y probablemente el más importante...
Los objetos los podemos encontrar también en el Panel Acciones, su uso es sencillo. Veamos un ejemplo:
Tenemos el objeto Clip1, que es una instancia de la Clase MovieClip y por tanto, tiene sus mismas
Propiedades y Métodos.
- Clip1._height = 20;
- Con la línea anterior, estamos diciendo a Flash que el objeto Clip1 tiene una altura de 20
(inmediatamente Flash la modificará en el fotograma en el que se encuentre). La sintaxis de Flash
establece que debe existir el separador "._" , no vale la pena entrar a describir el porqué. Siempre será
así, no lo olvidemos.
12. Clip1.Play();
Esta acción ejecutará el método Play, que pertenece a los Clips de
Película, provocará que se comience a ejecutar la línea de tiempos del
Clip1. Nótese que aquí no hay "_" como separador, sólo un "."
Ya conocemos los conceptos "básicos" de Flash 8. Si pensamos en que,
con sólo 1 línea podemos modificar la altura de un objeto de nuestra
película DURANTE LA EJECUCIÓN DE LA MISMA (y no mientras la
creábamos como hasta ahora), podremos hacernos una idea de lo que
nos permitirá el ActionScript ... Podremos dar vida a nuestras
animaciones y conseguir una interactividad total con el usuario.
Podremos conseguir una película completamente multimedia.
El conocimiento y comprensión de estos conceptos no es un requisito
para comenzar a programar con ActionScript, programar por intuición
es una práctica muy común en este tipo de lenguajes. En este curso
recomendamos saber lo que se está haciendo en todo momento y
conocer bien qué es cada cosa, y pensamos que hacer un esfuerzo inicial
nos gratificará constantemente durante nuestro aprendizaje de
ActionScript, pues con todo lo anterior claro y un poco de trabajo,
pronto pasaremos a ser programadores expertos y en ese momento la
intuición deja de ser útil...