Este documento introduce conceptos básicos de programación necesarios para entender ActionScript como lenguaje de programación. Explica que un script es código escrito en cualquier lenguaje que realiza una tarea, una variable puede cambiar de valor durante la ejecución, una expresión o sentencia provoca un resultado y debe terminar con punto y coma, una función realiza una tarea concreta con un nombre, y una acción es una función predefinida en Flash. También define parámetros, programación orientada a objetos con clases, objetos, propiedades y métodos, y cómo
1. CONCEPTOS
INICIALES DE
PROGRAMACIÓN
INTRODUCCION A LA PROGRAMACION
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:
2. 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 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
3. 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, tienen 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 propiedades 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:
4. 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...