1. 4.2 programar propiedades de los botones
Nivel Básico. Conceptos Iníciales de Programación
Introducción a la Programación con ActionScript
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;
}
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
Barajas Ferral Germán de Jesus 3º “B” nformática
2. 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?. 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:
Barajas Ferral Germán de Jesus 3º “B” nformática
3. - 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.
- 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...
Barajas Ferral Germán de Jesus 3º “B” nformática