2. Introducción a ActionScript
3.0
El ActionScript es el lenguaje de
programación que ha utilizado Flash desde
sus comienzos, da el control absoluto de
todo lo que rodea a una película Flash.
Absolutamente de todo
Características generales:
Está basado en la especificación ECMA-262.
ActionScript 3 es un lenguaje de
programación orientado a objetos
En la mayor parte de las ocasiones, será
necesario "programar".
4. el Panel Acciones sirve para programar scripts con
ActionScript.
El Panel Acciones se divide en 2 partes, a la
izquierda tenemos una ayuda facilitada por Flash
que nos da acceso de un modo rápido y muy
cómodo a todas las acciones, objetos,
propiedades etc. Estos elementos están divididos
en carpetas, que contienen a su vez más carpetas
clasificando de un modo eficaz todo lo que Flash
pone a nuestra disposición.
En la parte derecha tenemos el espacio para
colocar nuestro script, el código de ActionScript. El
código lo podemos insertar en cualquier fotograma
clave, aunque lo más "limpio" es crear una capa
para el código.
Podemos utilizar el , en el que en vez de escribir
directamente, seleccionamos los distintos
elementos desde listas; pero nos limita mucho al
5. Herramientas del panel de
acciones
Buscar: Busca un texto en el código.
Revisar sintaxis. Comprobará errores
en la sintaxis, normalmente que
hayamos olvidado cerrar paréntesis o
corchetes Si encuentra alguno, nos
mostrará un mensaje como:
6. Formato automático.
Al escribir en
cualquier lenguaje.
Este botón lo hace
automáticamente,
siempre que no haya
errores de sintaxis.
Con estos
botones, podemos,
de izquierda a
derecha, contraer el
espacio entre llaves,
contraer la selección
o expandir todo.
Con estos
botones, podemos
comentar el texto
seleccionado, o
descomentarlo
7. El panel Fragmentos de
código
En Flash CS5 se ha
creado un nuevo
panel para
ayudarnos a
generar el código
ActionScript
Desde la sección
Controladores de
eventos del panel,
podemos introducir
este código, y sólo
modificar la parte
necesaria.
8. Lo más destacado es que podemos crear
nuestros propios fragmentos de código, con
instrucciones que usemos habitualmente
9. Los operadores y expresiones
Flash nos permite usar multitud de
operadores.
El lector puede acceder desde el Panel
Acciones en la carpeta Elementos de
lenguaje → Operadores.
Operadores Aritméticos
10. Operadores de Asignación: Asigna el valor de una
variable.
11. Operadores de Comparación: Empleados en
expresiones condicionales, devuelven un valor
lógico, verdadero (TRUE o 1) si la comparación es
cierta, o falso (FALSE o 0) si no lo es
12. Operadores lógicos. Evalúan valores
lógicos. Normalmente se emplean para
comparar dos expresiones con
operadores relacionales, y devuelve
verdadero o falso.
13. Pondremos un ejemplo; imaginemos que le
pedimos a un usuario que introduzca su edad
en un campo de texto de nuestra película
flash. A ese campo le llamamos edad_usuario.
Le hacemos pulsar un botón Continuar y en
ese momento comprobamos su edad, si tiene
menor de edad, le decimos una cosa, de lo
contrario, le decimos otra. Bastaría con hacer
algo así:
Aquí lo que estamos diciendo es lo siguiente: "Si
edad_usuario es menor a 18, entonces damos el
mensaje 1, si no (igual o superior a 18) le damos el
mensaje 2.
14. Orden de precedencia:
En la siguiente tabla, vemos el orden
de precedencia, de mayor a menor, se
ejecutan primero los de mayor orden
15. Otros Elementos del lenguaje:
( ) : Paréntesis. Sirven, como es de
esperar, para agrupar términos y dar
preferencias en las operaciones
" " : Comillas. En ActionScript, todo lo que
va entre comillas, pasa a considerarse
una cadena de caracteres
//: Comentario de línea. Indica que el texto
a partir de ahí, y en esa línea, es un
comentario, y no se ejecutará como
código
/* ....... */: Comentario de bloque.
Cualquier texto de una o más líneas
encerrado entre estos caracteres es un
comentario, y no se ejecutará como
código
16. Los objetos
Cada objeto tiene las propiedades y
métodos propios de la clase, y
normalmente son independientes unos
de otros.
Podemos encontrar una lista con todas
las propiedades, métodos y Acciones.
Objeto "Button" (Botón): Los objetos de
tipo Botón es un tipo de MovieClip
especialmente pensado para que el
usuario interactúe con él. Cuando nos
interese que una imagen que hayamos
diseñado se comporte como un botón
17. Objeto "MovieClip" (Clip de Película): 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.
Objeto "DisplayObject" (Objeto de
visualización): Esta clase 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.
Objeto "Sound" (Sonido) y SoundChanel
(Canal de sonido): 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
18. Objeto "Mouse" (Ratón): 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.
Objeto "Math" (Matemáticas): Su función es muy
importante, pues nos permite usar fórmulas
matemáticas de modo muy sencillo.
Objeto "String" (Cadena): Es otro objeto peculiar,
pues corresponde a un tipo de datos. Los strings o
cadenas son secuencias de caracteres.
Seleccionar subcadenas de letras, buscar una
determinada letra en una palabra, convertir la
palabra a letras mayúsculas y un largo etc.
Objeto "Loader" (Cargador) y Objeto "URLLoader"
(Cargador de información): Los objetos Loader nos
permitirán cargar archivos para mostrarlos en
nuestra película, mientras que los objetos
URLLoader nos permitirán cargar información de
archivos.
19. Las acciones - métodos
comunes
Flash CS5 llama acciones a lo referente
al código ActionScript, lo que nos permite
dar comportamientos a los objetos
Acciones - Control de película: 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.
20. gotoAndPlay: 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.
play: Da comienzo a la reproducción de la
película o la continúa desde el punto detenido.
Sintaxis: play();
Ejemplo: this.play(); → Inicia la reproducción
del objeto actual.
stop: Detiene la reproducción de la película
Sintaxis: stop();
21. Acciones - Navegador / Red: fscommand: Esta
acción, es capaz de ejecutar ciertos comandos
muy potentes. Lo más cómodo es pasar a
Asistente de Script (sino estábamos ya) e
insertarla, nos aparecerá una pestaña con los
posibles comandos que admite.
Sintaxis: fscommand(comando, [argumentos])
comando:
El comando a ejecutar (fullscreen, allowscale,
etc...) argumentos: En la mayoría de los casos
debemos escribir true o false, según
queramos desactivar la opción o activarla. Por
ejemplo, en el caso del comando quit lo
dejaremos vacío.
Ejemplo:
fscommand("fullscreen", "true"); -> Activa la
pantalla completa.
22. navigateToURL() : Esta acción se emplea para abrir el
navegador web e ir a la página indicada. Sintaxis:
navigateToURL(url , [ventana]); url: Dirección web a la que
queremos acceder (se abrirá una ventana). Este parámetro
es un objeto del tipo URLRequest. Si queremos utilizar una
dirección como cadena de texto, podemos hacerlo
escribiendo new
URLRequest("http://www.direccion.coms").
ventana: Parámetro OPCIONAL. Modo en el que
queremos abrir la ventana (en la ventana actual (_self) en
otra nueva (_blank) etc...).
Ejemplo:
navigateToURL(new URLRequest("http://www.aulaclic.es"),
"_blank"); --> Abre la web de aulaClic en una ventana
nueva.
load(): Este método nos permite cargar nuevas películas
Flash o imágenes en nuestra película de forma dinámica.
objetoCargador.load(direccion:URLRequest, [contexto]).
Ejemplo:
var cargadorPeli:Loader = new Loader(); -> Creamos un
objeto Loader donde cargar el archivo.
cargadorPeli:Loader.load(new
URLRequest("archivo.swf"));-> LLamamos al método load()
para que cargue el archivo indicado
23. Acciones – Condiciones: Estas acciones sirven para
controlar la lógica de la película. Se puede decir que nos
permiten "hablar" con Flash para indicarle lo que debe
hacer ante distintas situaciones.
Sintaxis: if (condición) {sentencia_si_se_cumple; } else
{sentencias_si_no; }
condicion: Indica una condición que debe cumplirse, es
decir, debe tener como resultado true, o lo que es lo mismo,
verdadero, o lo que es lo mismo, 1. La condición siempre
debe de ir entre paréntesis.
sentencia_si_se_cumple;: Conjunto de acciones que
sucederán si la condición se evalúa como verdadera. Estas
sentencias deben de ir entre llaves.
else: Especifica la alternativa si condición se evalúa a falsa.
Es optativo. Si no existe, y no se cumple la condición, no se
hará nada, pues no lo hemos especificado.
sentencias_si_no; Conjunto de acciones que sucederán si
la condición se evalúa como falsa. Deben incluirse entre
llaves.
24. Propiedades de los objetos de
visualización
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.
Propiedades de DisplayObject, comunes a todos
los objetos que se visualizan.
Alpha, height, width, visible, x, y, rotation, name.
Propiedades de MovieClip:
Framesloaded, totalframes, currentFrame.
25. Indicamos al botón que cuando hagan clic,
llame a la función encogerRectangulo. Esta
función, lee el valor de las propiedades alto
y ancho del clip, las divide entre dos, y se
las vuelve a asignar. Con esto, reduce el
tamaño a la mitad.
26. Ejemplos de ActionScript 3.0
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
27. Código ActionScript para
botones
Veamos algunos de ellos: Esta acción
provoca que al hacer clic en el botón
vayamos directamente al Fotograma número
15 de la película.
En este momento queremos importar la
clase MouseEvent, le especificamos la clase
de flash que debe importar:
import flash.events.MouseEvent;
La segunda línea indicamos qué tiene que
suceder (el evento) para que se realice la
función que indicamos "funcionAlHacerClick"
28. En la tercera línea ya indicamos
nuestra función y dentro escribimos lo
que queremos que pase al hacer clic
en el botón. Esta acción provoca que
al pulsar un botón se abra una nueva
página web en nuestro navegador por
defecto y nos muestre la página
www.aulaclic.es
29. La cuarta línea creamos una variable
nueva para pasarle la web a la cual
queremos que nos lleve al pulsar el
botón.
Esta acción provoca que al pulsar un
botón se modifiquen las propiedades
del objeto cuyo nombre de instancia
aparece delante de la propiedad.
30. Código ActionScript para Clips
de película
Los Clips de Película son películas dentro
de películas.
Para que el código que contengan los clips
de película sea válido, éstos deben tener
algún evento de clip asociado (Load,
KeyDown etc) que determine cuándo se
ejecutará este código
Esta acción provoca que al pulsar un botón
vayamos al fotograma 2 de un Clip de
Película determinado. El fotograma de la
película principal no variará
31. Sonidos con ActionScript 3
los sonidos también son objetos y
podemos manejarlos usando
adecuadamente ActionScript.
sonido.mp3 es el nombre del archivo de
sonido que se va a cargar
En musica, que es un objeto Sound,
almacenamos el sonido. Para
controlarlo, utilizaremos canal, un
objeto SoundChanel.
32. Este código detiene el sonido que se
esté reproduciendo por el canal de
sonido canal.
La segunda, provoca que el sonido
musica comience a reproducirse (play) a
partir de su posición inicial (el 0 indica
los segundos transcurridos desde el
comienzo) y lo haga 99 veces (esto se
llama loop o bucle). Si ponemos sólo
musica.play();, se reproducirá desde el
principio y sólo una vez, como vemos en
el siguiente código:
33. El objeto MATH
x = Math.random(): genera un número
aleatorio entre 0 y 1. Las utilidades de
este método son muchas, generar
claves secretas, passwords, números
de lotería etc.
x = Math.round(4.3): REDONDEA el
parámetro introducido eliminando la
parte decimal del mismo.
x = Math.max(5 , 2): obtiene el valor
máximo entre 2 números.
34. Creación de un cargador o
preloader
Los cargadores o preloaders sólo son necesarios
cuando las películas adquieren un tamaño
considerable y resulta inviable visionar la película sin
tenerla toda cargada. Este es el código que
insertaremos: