El documento describe el lenguaje de programación ActionScript y sus características principales. ActionScript es el lenguaje utilizado en Adobe Flash y es similar a JavaScript. Permite programar interactividad y comportamientos en las películas Flash. Algunos objetos importantes en ActionScript son los botones, clips de película, sonidos y el objeto mouse.
2. Es un lenguaje de programación que ha utilizado
flash desde sus comienzos ,y que por supuesto
emplea flash cs5, a grandes rasgos podemos decir
que antionscript nos permita realizar en flash todo
lo que propongamos y para profundizar el
conocimiento del lenguaje por cuenta del lector
3. Como ya hemos comentado, el ActionScript es el lenguaje de
programación propio de Flash, tal y como el Lingo lo es de
Macromedia Director, por ejemplo. El ActionScript está basado en
la especificación ECMA-262, al igual que otros lenguajes como
Javascript.
ActionScript es, como su nombre indica, un lenguaje de script,
esto quiere decir que no hará falta crear un programa completo
para conseguir resultados, normalmente la aplicación de
fragmentos de código ActionScript a los objetos existentes en
nuestras películas nos permiten alcanzar nuestros objetivos.
ActionScript 3 es un lenguaje de programación orientado a
objetos. Tiene similitudes, por tanto, con lenguajes tales como
los usados en el Microsoft Visual Basic, en el Borland Delphi etc...
y aunque, evidentemente, no tiene la potencia de estos
lenguajes, cada versión se acerca más. Así, la versión 3.0
utilizada en Flash CS5 es mucho más potente y mucho más
"orientada a objetos" que su anterior versión 2.0.
4. La sintaxis ActionScript presenta muchísimos parecidos con el Javascript
o PHP; si estamos familiarizados con estos lenguajes, la sintaxis y el
estilo de ActionScript nos resultarán muy familiares. Las diferencias entre
JavaScript y ActionScript las podemos encontrar en la ayuda que
acompaña al Flash CS5.
En la mayor parte de las ocasiones, será necesario "programar". Flash CS5
pone a nuestra disposición una biblioteca de funciones, clases y métodos
(de momento entenderemos esto como "código ActionScript que realiza
una función determinada") ya implementadas que realizan lo que
buscamos, bastará con colocarlas en el lugar adecuado.
En Flash CS5, el Panel Acciones sirve para programar scripts con
ActionScript, por tanto lo aquí introduzcamos le afectará de menor o
mayor medida. Debemos tener claro desde un principio que el
Panel Acciones puede hacer referencia a Fotogramas u objetos, de modo
que el código ActionScript introducido afectará tan sólo a aquello a lo
que referencia el Panel. Por ejemplo, en la imagen inferior, se puede
distinguir que el Panel Acciones hace referencia al Fotograma 1 de la
Capa 1 (en el nombre de la pestaña de la zona de la derecha y en la
zona izquierda en el apartado Selección actual).
5. El Panel Acciones de Flash CS5, no tiene únicamente un
modo de edición. Podemos utilizar el , en el que en vez
de escribir directamente, seleccionamos los distintos
elementos desde listas. Puede resultar útil al principio,
cuando aún no estamos familiarizados, pero nos limita
mucho al escribir.
Cuando ya tenemos cierta soltura nos encontraremos más
cómodos con el Asistente de script desactivado, lo que
nos permite escribir directamente el código. Este último
modo nos dará más libertad y agilidad si sabemos qué
hacer, pero también es más fácil que cometamos errores.
En la parte superior encontramos herramientas que nos
ayudarán. Veamos las más útiles:
Buscar: Busca un texto en el código. Útil, por ejemplo, si
queremos buscar en todos los sitios que empleamos un
objeto.
6. En Flash CS5 se ha creado un nuevo panel
para ayudarnos a generar el código
ActionScript: el panel Fragmentos de código.
Este panel nos resultará muy útil, ya que
incluye las funciones básicas. Por ejemplo,
los eventos de botones siempre se escriben
de la misma forma. Desde la sección
Controladores de eventos del panel,
podemos introducir este código, y sólo
modificar la parte necesaria.
Pero además accediendo a sus opciones
encontramos opciones muy interesantes:
7. Entrando un poco más a fondo en la sintaxis y el manejo del ActionScript, vamos a
comenzar hablando de los operadores y de las expresiones, por ser la parte más
elemental de una acción de ActionScript (y de cualquier otro lenguaje de
programación).
Un operador es un tipo de carácter que realiza una acción especial dentro de una
expresión de ActionScript. Una expresión no es más que un conjunto de operadores,
variables y constantes relacionados entre sí de un cierto modo.
Por ejemplo:
x = 3 ; --> Es una expresión cuyo resultado será asignarle a la variable ' x ' el
valor 3 (que es una constante). A partir de este punto, la variable x vale 3.
y = 5 + x ; --> Es una expresión cuyo resultado será asignarle a la variable ' y ' la
suma de la constante 5 y la variable ' x ' que sabemos que vale 3 (porque le hemos
asignado este valor antes). Por tanto, el resultado de esta expresión es
asignarle 8 a y. También se puede considerar como asignar a y el valor de la
expresión 5 + x
Flash nos permite usar multitud de operadores, vamos a comentar los más comunes.
El lector puede acceder a los demás (y a estos) desde el Panel Acciones en la
carpeta Elementos de lenguaje → Operadores. Vamos a clasificar los operadores
tal y cómo lo hace Flash.
Operadores Aritméticos
Son los operadores empleados en operaciones matemáticas.
8. Asigna el valor de una variable. -=
Operador Resta con asignación. Le resta
Descripción el valor de la derecha.
Ejemplo variable vale 3;
variable -= 5;
= variable vale -2;
Asigna a la variable de la *=
izquierda el valor de la
derecha Multiplicación con asignación.
variable vale 3; variable vale 3;
variable = 5; variable *= 5;
variable vale 5; variable vale 15;
+= /=
Suma con asignación. Le añade División con asignación
a la variable el valor de la variable vale 15;
derecha. variable /= 5;
variable vale 3; variable vale 3;
variable += 5;
variable vale 8;
9. Mayor o igual que
Operadores de Comparación 6 >= 5 da verdadero.
Z Empleados en expresiones <=
condicionales, devuelven un Menor o igual que
valor lógico, verdadero (TRUE o
1) si la comparación es cierta, 6 >= 6 da verdadero.
o falso (FALSE o 0) si no lo es. ==
Operador Igual
z 'hola' == 'hola' da verdadero.
Ejemplo !=
> Distinto
Mayor que 'hola' != 'hola' da falso.
6 > 5 da verdadero. s
<
Menor que
6 < 5 da falso.
>=
10. LosObjetos, como ya hemos visto en el tema
básico, los objetos son instancias de una
determinada clase. Esto es, son
representantes de una clase ya definida.
Cada objeto tiene las propiedades y métodos
propios de la clase, y normalmente son
independientes unos de otros. Así, son
objetos, por ejemplo, un botón, un clip de
película, un gráfico o un sonido... es decir,
que prácticamente todo es un objeto en
Flash CS5.
11. Vamos a ver los objetos más usados en Flash y
una breve descripción de cada uno de ellos.
Como ya se ha explicado en el tema básico, cada
objeto tiene una serie dePropiedades (que
veremos después), unos Métodos y eventos, que
dan funcionalidad a los objetos. Cuando un
componente de Flash pasa a ser un objeto,
automáticamente pasa a tener todas las
propiedades definidas por Flash para ese objeto
y pasa a reaccionar ante los Métodos y eventos
que tiene definidos. Podemos encontrar una lista
con todas las propiedades, métodos y Acciones.
12.
Los objetos de tipo Botón es un tipo de MovieClip
especialmente pensado para que el usuario
interactúe con él, permitiéndonos diferenciar
entre sus estados, y crear una apariencia para
cada uno.
Cuando nos interese que una imagen que
hayamos diseñado se comporte como un botón,
bastará convertirla a botón (del modo visto en el
capítulo correspondiente) y ya podremos usar los
eventos típicos de un botón.
.
13.
Cuando necesitemos crear una película Flash
dentro de otra película, pero no queramos tener
2 ficheros separados ni molestarnos en cargar
una película u otra, deberemos crear un objeto
movieclip. Entre sus propiedades especiales
destaca que los objetos "clip de película" tienen,
internamente, una línea de tiempos que corre
independiente de la línea de tiempos de la
película principal de Flash, lo que nos permite
crear animaciones tan complejas e
independientes como queramos (podemos crear
tantos clips de película dentro de otros como
queramos, por ejemplo). Realmente, toda
nuestra película es un MovieClip
14. Estaclase engloba a todos los objetos que
podemos ver en nuestra película, como los
Clips de película y botones, y define las
propiedades y métodos comunes para todos
ellos.
15. Los objetos sonidos no son visuales, y por tanto,
no podremos ver como quedan en los
fotogramas, al igual que haríamos con un botón
o un clip de película. Deberemos controlarlos,
por tanto, desde el Panel Acciones y usando
ActionScript. Tienen multitud de métodos
especiales, muy potentes y útiles, podemos
parar un sonido, crear un bucle, darle efectos
sonoros etc... Utilizando el canal de sonido,
podremos pararlo, ajustar el volumen, etc.
Podríamos, por ejemplo, crear un objeto de tipo
sonido y después hacer que al pulsar un botón
suene. (Más adelante se verá algún ejemplo de
uso de sonidos).
16.
El objeto mouse es uno de los objetos de Flash que ya
está definido por Flash, pues hace referencia al ratón
de Windows (al que manejará el usuario que vea
nuestra película). Si lo usamos, podremos acceder a
las propiedades del ratón de Windows, tipo de cursos,
efectos asociados, detección de su posición etc...
Vale la pena insistir en que su manejo no es análogo
al de otros objetos como el botón, pues podemos
crear tantos botones como queramos y hacer con
ellos lo que decidamos, pero el objeto Mouse es único
y actúa sobre el ratón del PC del usuario que vea
nuestra película. Se puede decir que es un objeto
"externo" que permite que otras partes del Sistema
Operativo interactúen con nuestra película Flash. Por
tanto, es muy potente
17.
Es uno de los múltiples objetos "abstractos"
de Flash, ni es visual, ni parece que
corresponda a nada existente en el sistema
(como el objeto "Mouse"). Su función es muy
importante, pues nos permite usar fórmulas
matemáticas de modo muy sencillo. En el
tema siguiente veremos algún ejemplo de su
uso.
18. .
Es otro objeto peculiar, pues corresponde a
un tipo de datos. Los strings o cadenas son
secuencias de caracteres. Si definimos una
secuencia de caracteres como objeto de tipo
String, podremos usar los métodos que Flash
implementa sobre ellas: Seleccionar
subcadenas de letras, buscar una
determinada letra en una palabra, convertir
la palabra a letras mayúsculas y un largo
etc...
19. Los objetos Loader nos permitirán cargar archivos para mostrarlos
(imágenes, archivos swf, etc...) en nuestra película, mientras que
los objetos URLLoader nos permitirán cargar información de
archivos (archivos de texto, XML, páginas web...).
20. Flash CS5 llama acciones a lo referente al código ActionScript, lo que nos
permite dar comportamientos a los objetos.
Estas acciones son funciones predefinidas de ActionScript, es decir: Flash
CS5 las crea, y nosotros sólo tenemos que usarlas de la manera que se
nos indica. No tenemos que definir las funciones ni nada por el estilo, ni
siquiera necesitamos saber cómo están hechas... Lo importante es que
están listas para usar, lo que facilita el uso de este lenguaje de
programación y sobre todo, haga muy rápido comenzar a programar.
Por supuesto, cuando tengamos más conocimientos, veremos que no es
difícil completar estas acciones ya creadas con las nuestras propias.
Explicaremos las Acciones más importantes, y a medida que avancemos
en el curso, añadiremos algunas más. Para una referencia más completa,
recomendamos mirar la ayuda del programa.
Las acciones son métodos de los objetos (funciones internas a estos), por
lo que no todas están disponibles para todos los objetos.
Definiremos las acciones escribiendo su cabecera (nombre + parámetros
con un nombre genérico) para después explicar qué es cada parámetro.
21. Estas acciones se emplean, como su nombre
indica, para controlar el flujo de nuestra
película, esto es, para indicar a Flash en todo
momento qué fotograma tiene que mostrar,
cuándo tiene que parar, dónde seguir etc...
Estas acciones son métodos de la clase
MovieClip. Podemos aplicarlas a cualquier
MovieClip de nuestra película, siguiendo el
siguiente formato:nombreMovieClip.accion();. Si
escribimos la función directamente, es decir, si
no indicamos el objeto, estamos haciendo
referencia a la película general.
Veamos las más importantes para entenderlas
mejor:
22. Esta acción será, probablemente la que más usemos durante la
realización de nuestras películas. La acción que realiza consiste
en mover la cabeza lectora al fotograma que le indiquemos. La
cabeza lectora es lo que determina qué fotograma de nuestra
película se está reproduciendo en cada momento. Si, por
ejemplo, lo movemos del fotograma 1 al 25, lo que veremos
instantáneamente será el fotograma 25 y la película continuará
reproduciéndose a partir de ahí.
Sintaxis:
gotoAndPlay(escena, fotograma):
escena: Nombre de la escena a la que queremos enviar la cabeza lectora.
Debe ir entre comillas dobles.
fotograma: Número o nombre del fotograma al que queremos enviar la
cabeza lectora. Si es un nombre (una etiqueta), debe ir entre comillas
dobles, si es un número, no.
Ejemplo:
miClip.gotoAndPlay("Escena2", 7); → Esta acción lleva la cabeza
lectora al fotograma 7 de la escena llamada "Escena2" del
MovieClip con el nombre de instanciamiClip.
23. Da comienzo a la reproducción de la película
o la continúa desde el punto detenido.
Sintaxis:
play();
No tiene Parámetros.
Ejemplo:
this.play(); → Inicia la reproducción del
objeto actual
24. Detiene la reproducción de la película. Se
puede usar en un fotograma, cuando
queramos detenernos en él (porque es un
menú, por ejemplo), en un botón, (para que
detenga la película), etc..
Sintaxis:
stop();
No tiene Parámetros.
25.
Los Métodos y Propiedades suelen ser específicos de cada objeto, y su estudio
requeriría un nuevo curso completo, (recomendamos consultar la ayuda incorporada
en el Flash CS5 cuando surjan dudas), pero hay bastantes propiedades de los objetos
que son comunes a muchos de ellos. Vamos a ver las más utilizadas, que afectan a
los objetos de visualización, que son con los que trabajaremos habitualmente.
Hay que entender que las clases se heredan. Es decir, una clase genérica, tiene
subclases más concretas. Las sublaceses, tienen todos los métodos y propiedades de
la clase de la que heredan, y además agregan sus propios métodos y funciones.
Los objetos que se visualizan en Flash, pertenecen a la clase DisplayObject. A su
vez, los clips de película pertenecen a la clase MovieClip, que es una subclase de la
anterior. Por tanto, todos los MovieClip tendrán los métodos y propiedades de
DisplayObject, pero no al revés.
Para usar las propiedades, se debe colocar el nombre de la instancia del objeto
seguido de un punto (.) y después la propiedad y su valor (objeto.propiedad =
valor). Algunas propiedades se pueden escribir sin el nombre del objeto al que
hacen referencia delante, en ese caso, harán referencia a la película principal,
que también es un MovieClip, aunque en este caso es recomendable utilizar la
palabra reservada this.
Propiedades de DisplayObject, comunes a todos los objetos que se visualizan.
26. alpha
Hace referencia a la opacidad del objeto al que afecte. La opacidad se
puede definir como la no-transparencia. De modo que un 100% de
transparencia equivale a un 0 de opacidad, o a un 0 de alpha.
height
Devuelve o establece la altura del objeto en píxeles. Por ejemplo, si
tenemos un clip de película llamado "Clip1" y escribimos "Clip1.height"
obtendremos la altura de Clip1. Del mismo modo, podemos cambiarla sin
más que hacer: Clip1.height = 100; (la altura del Clip1 pasaría a ser de
100 píxeles)
width
Propiedad idéntica a la anterior, pero devuelve o establece la anchura.
visible
Determina si el objeto está o no visible en nuestra película. Cuando vale
1 o True, lo está, cuando vale 0 o False, pasa a ser invisible. Es muy útil
para hacer desaparecer partes de una película en un momento
determinado. Por ejemplo, si queremos que al pulsar un botón
desaparezca el clip de película llamado "Clip2", haremos esto: .... ...
Clip2.visible = 0; ... ....
27. x
Con esta propiedad obtenemos o establecemos las coordenadas
del objeto respecto del eje de las X (horizontal). Sirve para
averiguar la posición o para asignarla de forma dinámica (durante
la ejecución de nuestra película Flash)
y
Con esta propiedad obtenemos las coordenadas del objeto
respecto del eje de las Y (vertical). Sirve para averiguar la
posición o para asignarla de forma dinámica (durante la
ejecución de nuestra película Flash).
rotation
Con esta propiedad obtenemos o establecemos el giro del objeto,
su rotación, expresado en grados.
name
Con esta propiedad obtenemos o establecemos el nombre de la
instancia.
28. Vamos a mostrar los usos más característicos de código ActionScript en
los diferentes objetos existentes en Flash CS5. De este modo lo
comprenderemos mejor y porqué no, nos ahorraremos trabajo al tener ya
hechos aquí muchos de los códigos que usaremos en nuestras películas.
Mostraremos el código y a continuación, una explicación del mismo.
Algunas cosas que debemos de tener en cuenta si estamos familiarizados
con la programación en ActionScript 2, es que con ActionScript 3.0 no
podemos utilizar:
alert()
La forma de tratar eventos, como on (event){}, onClipEvent(event){},
object.onEvent = function(){} , addListener , etc. La forma de tratarlos
ahora es agregando un escuchador al objeto, con el
método addEventListener, indicando el evento, y una única función de
escucha.
Guiones bajos ( _ ) antes del nombre de las propiedades.
Variables globales (_global).
_root y _parent para acceder a elementos superiores.
Muchas de las funciones que explicaremos se pueden insertar total o
parcialmente desde el panel Fragmentos de código.
29. Los Botones (objeto Button para Flash CS5) tienen
mucha utilidad siempre que queramos que nuestra
película interactúe con el usuario. Dado que esto va a
ser prácticamente siempre, es conveniente estudiar y
entender bien algunos códigos típicos que tendremos
que usar para conseguir nuestros propósitos.
En realidad, los botones se comportan como
cualquier símbolo. A todos les podemos aplicar
eventos, ya que lo que hacemos es asociarlos
normalmente al clic del ratón. Los botones tienen la
ventaja de que nos permiten representar distintos
estados, mejorando la percepción de interactividad.
Para tener el código organizado, es mejor crear una
nueva capa e insertarlo ahí.