Este documento introduce conceptos básicos de programación necesarios para entender ActionScript como scripts, variables, expresiones, funciones, acciones, parámetros y programación orientada a objetos. Explica que los scripts son código escrito en cualquier lenguaje que realiza una tarea, las variables almacenan datos que pueden cambiar, las funciones realizan tareas específicas, y las acciones son funciones predefinidas en Flash. También define parámetros, clases, objetos, propiedades y métodos relacionados con la programación orientada a objetos en ActionScript
1. INTRODUCCION ALA PROGRAMACION CON ACTION SCRIPY.
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
2. INTRODUCCION ALA PROGRAMACION CON ACTION SCRIPY.
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?. 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á:
3. INTRODUCCION ALA PROGRAMACION CON ACTION SCRIPY.
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
4. INTRODUCCION ALA PROGRAMACION CON ACTION SCRIPY.
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...