FLASH MX
E INTRODUCCIN A LA PROGRAMACIN EN
ACTIONSCRIPT
Luis A. Gil-Guijarro Redondo
Curso Flash
Curso de Flash
NOTAS
Indice de materias
1. Flash y su interfaz de trabajo . . . . . . . . . . . . . . . . . . . . . 1
2. Dibujo en Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Trabajo con color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4. Creacin de animacin . . . . . . . . . . . . . . . . . . . . . . . . . 13
5. Utilizacin de smbolos, instancias y elementos
de bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6. Trabajo con texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7. Trabajo con clips de pelcula y botones . . . . . . . . . . . . 22
8. Creacin de interacciones simples con ActionScript . . 25
9. Adicin de sonidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10. Prueba y publicacin de una pelcula . . . . . . . . . . . . . . 33
11. Creacin de scripts con ActionScript . . . . . . . . . . . . . . 35
12. Utilizacin de componentes . . . . . . . . . . . . . . . . . . . . . 50
-1-
NOTAS
-2-
de maysculas-.
Lpiz, para el trazado de lneas a mano alzada.
NOTAS
Pincel, se usa para realizar trazos gruesos. El color del
trazo ser el seleccionado para relleno. Puede hacerse sensible
a la presin si usamos un lpiz ptico.
Texto, sirve para introducir los diferentes tipos de cuadros
de texto.
Transformacin libre, permite hacer transformaciones
de forma y giros de los elementos seleccionados.
Transformacin de relleno, nos permitir modificar las
caractersticas de los rellenos no slidos
Bote de tinta, permite trazar contornos y cambiar el color
de tinta de los mismos.
Cubo de pintura, se usa para rellenar espacios de color o
cambiar colores
Cuentagotas, sirve para seleccionar colores de tinta o de
relleno para aplicarlos a otros elementos.
Borrador, herramienta de borrado de rellenos y contornos
selectivos
Mano y zoom, son herramientas de visualizacin.
Con la primera movemos el encuadre del espacio de
trabajo, con la segunda seleccionamos el rea de visualizado.
Color de trazo y color de relleno, sirven para
seleccionar los colores correspondientes del objeto que se
va a trazar o que se tiene seleccionado.
-3-
NOTAS
Luis Gil-Guijarro
-4-
2. DIBUJO EN FLASH
NOTAS
Luis Gil-Guijarro
-5-
NOTAS
Luis Gil-Guijarro
-6-
NOTAS
Luis Gil-Guijarro
-7-
NOTAS
USO DE CAPAS
Otra posibilidad de trabajo, bastante ms interesante y til que
la de las agrupaciones de elementos es el uso de capas. En la lnea de
tiempo podemos ver que
los grficos que estamos
dibujando se incluyen dentro de una Capa 1.
El uso de diferentes
capas nos permite gestionar con facilidad los diferentes elementos que compongan nuestra pelcula de
Flash, pudiendo decidir
qu elementos deben ponerse sobre otros y cambiar este orden con
suma facilidad. Para insertar una nueva capa pulsaremos sobre el
botn
o seleccionando Insertar > Capas. Para mayor facilidad de
gestin, las capas pueden ser renombradas haciendo doble clic sobre
el nombre y escribiendo el nuevo. As mismo, podemos ver junto al
nombre cuatro iconos que servirn para:
Indica cul es la capa activa y con la que se est trabajando.
Indica si se visualizan o no los elementos incluidos en la
capa.
Indica si tenemos la capa bloqueada para su edicin o no
Indica si queremos ver las formas con su relleno o slo sus
siluetas.
Las capas pueden ser agrupadas en carpetas, lo que permite una
gestin ms eficaz de pelculas con un elevado nmero de grficos.
Las capas pueden ser cambiadas de orden sin ms que arrastrarlas al
lugar seleccionado. Para borrar una capa, tras seleccionarla pulsaremos el botn
Ejercicio: trazar varios elementos en diferentes capas y comprobar el
uso y la gestin de las mismas.
EL PORTAPAPELES
En el uso del portapapeles en Flash debemos tener presentes las
siguientes consideraciones:
Cuando
c pegamos un objeto desde el portapapeles, dicho objeto
aparecer en el centro del rea de trabajo, en la capa activa.
Si queremos que el objeto aparezca situado en el mismo lugar desde
Luis Gil-Guijarro
-8-
NOTAS
Luis Gil-Guijarro
-9-
NOTAS
EL MEZCLADOR DE COLORES
El mezclador de colores es una ventana en la que podemos
seleccionar de forma personalizada tanto el color de relleno y de
contorno, como el tipo de relleno.
Un apartado a tener en cuenta es la posibilidad de trabajar con
colores transparentes, que permiten ver objetos situados debajo de
otros. Esta opcin se manipula con el valor alfa, representado por el
tanto por ciento de opacidad: 100% opaco, 0% totalmente transparente.
En las ventanas de ajuste numrico podemos situar el valor
exacto de cada color en la mezcla con nmeros desde el 0 al 255. Este
nmero va apareciendo transformado a hexadecimal en el cuadro
Luis Gil-Guijarro
- 10 -
NOTAS
Los diferentes tipos de relleno que podemos aplicar son: slidocolor uniforme-, degradado lineal -se produce un efecto de degradado
entre dos o ms colores segn la direccin de una lnea recta-,
degradado radial -tambin personalizable a varios colores- y de mapa
de bits -muy til para aplicar tramadosAl aplicar degradados aparece una barra con dos deslizadores, cada uno de un color,
mostrando cmo va a aparecer el
efecto de degradado de uno a
otro. Estos deslizadores pueden
moverse para hacer un efecto
ms o menos brusco. Tambin
podemos introducir deslizadores
nuevos haciendo clic en el espacio entre los deslizadores que ya
tenemos; el color que tendr de partida el nuevo ser el que haya en
esa posicin en la barra de degradado. Podemos introducir tantos
deslizadores como necesitemos.
Para cambiar un color en un deslizador haremos clic en l para
seleccionarlo y ajustaremos su color con la paleta o mediante su valor
numrico.
Para cambiar el color de un objeto ya dibujado, en el caso de
que se quiera dar un degradado personalizado, seleccionaremos el
objeto y trabajaremos en la paleta de colores. En el caso de que
queramos hacer variaciones sobre unos colores ya definidos, y
queramos partir de esa mezcla, tendremos que actuar de la siguiente
forma: seleccionamos el objeto a modificar, en la ventana de propiedades desplegamos la paleta de colores de relleno, pulsamos la tecla
de escape, esto har que en el mezclador de colores aparezca la
mezcla de dicho objeto.
Luis Gil-Guijarro
- 11 -
NOTAS
Luis Gil-Guijarro
- 12 -
NOTAS
- 13 -
NOTAS
Luis Gil-Guijarro
- 14 -
NOTAS
Luis Gil-Guijarro
- 15 -
NOTAS
Luis Gil-Guijarro
- 16 -
NOTAS
- 17 -
6.
Luis Gil-Guijarro
- 18 -
LA BIBLIOTECA
Como ya hemos visto, la biblioteca se muestra como una
ventana con dos partes bsicas: un listado con todos los smbolos
includos en ella y una ventana en la que se
muestra el smbolo seleccionado. Junto al
nombre aparece un icono para identificar el tipo
de smbolo:
para grficos,
para botones
y
para clips.
NOTAS
- 19 -
NOTAS
TIPOS DE TEXTO
Hay tres formas diferentes de incluir texto en un fichero Flash:
Texto esttico: sirve para incluir informacin escrita que no tiene
que ser modificada.
Texto dinmico: es un tipo de texto que podemos modificar a
travs de rutinas de programacin en ActionScript en funcin de
las interacciones del usuario.
Entrada de texto: son cuadros de texto a travs de los que el
usuario puede introducir informacin para ser tratada por rutinas
de ActionScript.
Ms adelante, en el captulo de ActionScript se vern algunos
ejemplos de tratamiento de los textos dinmicos y de introduccin.
Aqu slo veremos cmo trabajar con los textos estticos.
CUADROS DE TEXTO ESTTICO
Cuando seleccionamos la herramienta texto la ventana de
propiedades que aparece es la que se ve abajo. En ella podemos
cambiar la fuente, tamao, color, direccin del texto, tipo de
justificacin, ajustar la distancia entre caracteres y entre lneas,
permitir que el texto sea seleccionable o establecer un enlace a una
direccin web.
Cuando escribimos texto esttico en una determinada fuente, el
tipo de las letras se exporta con el archivo, cosa que no ocurre con el
texto dinmico ni con el de entrada, con los que habr que exportar la
fuente como se ver en su momento.
Para crear un bloque de texto que muestre texto en una sola
lnea, se har clic donde desee que empiece el texto y se proceder a
escribirlo.
Para crear un bloque de texto con una anchura fija situaremos
el puntero donde se desee que empiece el texto y arrastraremos el
puntero para sealar dicha anchura.
Luis Gil-Guijarro
- 20 -
El efecto en cuestin es el
de separar las letras que componen el texto para convertirlo en
primer lugar en letras separadas.
Para hacerlo buscaremos Modificar > Separar o men alternativo y Separar. Cuando separamos un cuadro de texto conseguimos que cada una de las letras sea un cuadro de texto independiente, con las posibilidades de manipulacin para realizar
animaciones con las mismas que ello conlleva.
NOTAS
Luis Gil-Guijarro
- 21 -
Notas
CLIPS DE PELCULA
Un clip de pelcula es como una minipelcula: tiene su propia
lnea de tiempo, independiente de la lnea de tiempo principal, y sus
propiedades. Los clips de pelcula se almacenan en la biblioteca y de
cada smbolo de clip de pelcula pueden introducirse en un documento
tantas instancias como se necesiten. Para distinguir las diferentes
instancias de un mismo clip se le asignan nombres, incluso en algunas
ocasiones aunque slo se use una instancia del clip habr que
asignarle un nombre para poder incluir rutinas que se refieran a l. El
nombre asignado a la instancia es totalmente independiente del que
tenga el smbolo; no podemos referirnos a una instancia por el
nombre del smbolo, aunque slo haya una nica instancia del mismo
en la pelcula. Las instancias de clip de pelcula pueden anidarse unas
dentro de otras para crear una jerarqua.
Ejemplo: vamos a hacer una pelcula consistente en un coche que se
desplaza de un extremo a otro de la pantalla; el coche va a estar
constituido por un clip; las ruedas, que girarn, sern instancias de
otro clip diferente que est insertado en el clip coche.
Procedimiento:
1. Abrir un documento Flash y dibujar la silueta de un coche con
sus ventanas (usar diferentes capas para no alterar por error las
formas ya definidas).
2.
3.
4.
5.
6.
7.
Luis Gil-Guijarro
- 22 -
8.
9.
Notas
- 23 -
Notas
Luis Gil-Guijarro
- 24 -
Notas
LENGUAJE ACTIONSCRIPT
Una de las grandes posibilidades de Flash en la de poder
introducir programacin en sus pelculas, lo que hace de ellas
herramientas de absoluta interactividad y, por ello, ideales para la
presentacin de contenidos didcticos. El lenguaje que integra Flash
es el denominado ActionScript, y se trata de un lenguaje de programacin orientado a objetos bastante fcil y con muchas similitudes
con JavaScript.
Las lneas de programacin se incluyen desde la ventana
Acciones. Cuando se abre esta ventana por primera vez la veremos
como en el grfico de abajo.
- 25 -
Notas
- 26 -
2.
3.
4.
5.
6.
7.
Notas
- 27 -
Notas
- 28 -
Notas
on (rollOut) {
gotoAndPlay(1);
}
on (press) {
gotoAndPlay(11);
}
Cuando presiono ir al
fotograma11
- 29 -
3.
4.
5.
6.
7.
Notas
Ejercicio: Modificar el clip de los coches para hacer que cada uno
tenga un movimiento independiente, y disponer un botn de marcha
y otro de paro para cada uno de los coches (tendremos que incluir el
movimiento en la propia lnea de tiempo del clip coche. Si se van a
escalar los tamaos tendremos que crear un clip por cada coche).
Luis Gil-Guijarro
- 30 -
9.Adicin de sonidos
Notas
- 31 -
2.
3.
4.
Notas
on(release){
_root.sonido.stop()
_root.sonido.attachSound("nubes")
_root.sonido.start();
}
En la segunda lnea de este script aparece la palabra nubes porque
har que suene el sonido exportado con el nombre nubes. En cada
grfico asociaremos su dibujo con el sonido que le corresponde.
Luis Gil-Guijarro
- 32 -
Notas
- 33 -
Luis Gil-Guijarro
- 34 -
Notas
- 35 -
on (release) {
this.stopDrag();
}
Notas
Luis Gil-Guijarro
- 36 -
this._x=_root.bombillaC._x
this._y=_root.bombillaC._y
Notas
- 37 -
origenX = _x;
origenY = _y;
Notas
si no se cumple
_x = origenX;
_y = origenY;
- 38 -
Notas
Accin: moviclip.swapDepths(nivel)
Con esta accin podemos cambiar una instancia al nivel que
deseemos
Vamos a incluir en cada clip las siguientes instrucciones:
1.
2.
INCLUSIN DE CONTADORES
Vamos, a continuacin, a tratar de poner unos contadores que
permitan conocer el nmero de errores cometidos. Para hacerlo
tendremos que usar, junto a las variables, una de las opciones de texto
que no vimos en su momento: los cuadros de texto dinmico.
Los cuadros de texto dinmico son objetos de texto que pueden
cambiar su contenido por la accin de un script y de las interacciones
de los usuarios. Hay dos formas diferentes de trabajar con cuadros de
texto dinmicos: asociando stos a una variable, que es la forma en
que lo vamos a hacer nosotros aqu, y otra algo ms compleja pero al
mismo tiempo mucho ms verstil, que consiste en convertirlos en un
objeto similar a un clip dndoles un nombre y asocindoles bastantes
acciones especiales para este tipo de objetos.
Para asociar un cuadro de texto dinmico a una variable, en la
ventana de propiedades, una vez especificado que el cuadro de texto
pasa a ser dinmico, aparecen nuevos cuadros. Uno de ellos, llamado
Var, sirve para incluir el nombre de la variable a la que asociamos el
cuadro de texto. Tambin podremos ajustar que el texto dinmico
lleve un marco o no, que sea de lnea nica o de varias lneas -en esta
opcin hay que tener presente que slo se ver el texto que quepa en
el cuadro especificado-.
- 39 -
Notas
this.startDrag(false);
this.swapDepths(1);
- 40 -
Notas
this._visible = false;
this._visible = true;
_root.boton_continuar._visible = true;
- 41 -
Notas
boton_continuar._visible = false;
enhorabuena._visible = false;
aciertos = 10;
fallos = 0;
_root.bombilla._x = _root.bombilla.origenX;
_root.bombilla._y = _root.bombilla.origenY;
_root.bombillaS._x = _root.bombillaS.origenX;
_root.bombillaS._y = _root.bombillaS.origenY;
_root.interruptor._x = _root.interruptor.origenX;
_root.interruptor._y = _root.interruptor.origenY;
_root.interruptorS._x = _root.interruptorS.origenX;
_root.interruptorS._y = _root.interruptorS.origenY;
_root.motor._x = _root.motor.origenX;
_root.motor._y = _root.motor.origenY;
_root.motorS._x = _root.motorS.origenX;
_root.motorS._y = _root.motorS.origenY;
_root.pila._x = _root.pila.origenX;
_root.pila._y = _root.pila.origenY;
_root.pilaS._x = _root.pilas.origenX;
_root.pilaS._y = _root.pilas.origenY;
_root.pulsador._x = _root.pulsador.origenX;
_root.pulsador._y = _root.pulsador.origenY;
_root.pulsadorS._x = _root.pulsadorS.origenX;
_root.pulsadorS._y = _root.pulsadorS.origenY;
- 42 -
Notas
miTexto.text="Prueba";
Luis Gil-Guijarro
- 43 -
miTexto.autosize = true;
Indica que el cuadro de texto miTexto cambiar su tamao para adecuarse al contenido
Notas
miTexto.backgroundColor = 0xAA00FF;
miTexto.borderColor = 0xFF0000;
- 44 -
Notas
Procedimiento:
1. En un escenario nuevo crear un clip de pelcula consistente en un
cuadrado azul y un cuadro de texto dinmico con nombre de
instancia miTexto.
2. En un fotograma clave de la lnea de tiempo principal crearemos
una instancia de cuadro de texto con miTexto y habilitaremos el
color de fondo y el borde.
3. Con el clip del cuadrado seleccionado -no editado- incluiremos
el siguiente script:
on (rollOver) {
_root.miTexto._visible = true;
_root.miTexto.text = "cuadrado azul";
_root.miTexto.backgroundColor = 0xFFFF00;
_root.miTexto.textColor = 0x0000FF;
fin de acciones
on (rollOut) {
Cuando salga
_root.miTexto._visible = false;
_root.mitexto.text = "";
fin de acciones
Luis Gil-Guijarro
- 45 -
function ponerTexto() {
Notas
.miTexto._visible = true;
miTexto.text = clip;
miTexto.backgroundColor = fondo;
Luis Gil-Guijarro
- 46 -
miTexto.textColor = texto;
Notas
miTexto._y=_ymouse
Luis Gil-Guijarro
- 47 -
onClipEvent (load) {
Al cargarse
arriba = _y;
abajo = _y;
izquierda = _x;
derecha = _x+200;
on (press) {
Al presionar
on (release) {
Al liberar
stopDrag();
Parar el arrastre
Notas
- 48 -
min y max.
Notas
_rotation =
_root.deslizador.porcentaje*360/100;
gotoAndStop(Math.ceil(_root.desliza
dor.porcentaje*_totalframes/100));
Fin de evento
La operacin es la siguiente:
_root.deslizador.porcentaje*_totalframes/100
toma el valor de la variable de porcentaje de nuestro clip deslizador,
multiplica este valor por el nmero total de fotogramas de nuestro clip
y lo divide por 100, en definitiva convierte un nmero entre 0 y 100
en otro entre 0 y el nmero de fotogramas del clip de pelcula.
Luis Gil-Guijarro
- 49 -
Notas
Cuando se cargue
_width = 0;
onClipEvent (enterFrame) {
_width =
214*_root._currentframe/_root._total
frames;
Luis Gil-Guijarro
- 50 -
_parent.fotograma =
_root._currentframe;
La operacin
_width = 214*_root._currentframe/_root._totalframes;
iguala el ancho del clip a un valor que est entre o y el ancho de la
barra deslizadora dependiendo del fotograma que se reproduzca en ese
momento. El ancho de la barra es de 214; este valor tendr que ser
modificado en funcin del ancho de la propia barra.
Como se muestra en la imagen de abajo, hemos incluido
tambin una serie de botones que permitirn controlar completamente
la reproduccin de una pelcula.
Al liberar
gotoAndStop(1)
Ir y detenerse en el fotograma 1
Fin de acciones
Retroceder un fotograma
on (release) {
Al liberar
if (_currentframe>1) {
gotoAndStop(prevFrame());
Ir y detenerse en el fotograma
anterior al actual
else {
Si no se cumple la comparacin
gotoAndStop(_totalframes);
Luis Gil-Guijarro
- 51 -
Notas
Parar
on (release) {
Al liberar
stop();
Parar la proyeccin
Al liberar
play();
Reproducir la pelcula
continuar = 0;
stop();
detener la proyeccin
fin de acciones
Al liberar
play();
Reproducir la pelcula
continuar = 1;
Avanzar un fotograma
on (release) {
Al liberar
stop();
Detener la proyeccin
if (_currentframe<_totalframes) {
gotoAndStop(nextFrame());
Ir y detenerse en el siguiente
fotograma del actual
else {
Si no se cumple la comparacin
gotoAndStop(1);
Ir y detenerse en el fotograma 1
Luis Gil-Guijarro
- 52 -
Notas
Ir al ltimo fotograma
on (release) {
Al liberar
gotoAndStop(_totalframes)
Luis Gil-Guijarro
- 53 -
Operadores:
+ (suma)
++ (incremento)
-- (decremento)
* (producto)
/ (divisin)
! (negacin)
= (igualar)
== (comparar una igualdad
< (menor que)
> (mayor que)
<= (menor que o igual)
>= (mayor que o igual)
Luis Gil-Guijarro
- 54 -
Notas
a la casilla de verificacinInitial Value (valor inicial): es el valor que tomar al inicio; puede
ser false (no marcada) o true (marcada).
Label Placement (localizacin de la etiqueta): ubicacin de la
etiqueta; puede estar a la derecha o a la izquierda.
Change Handler: no vamos a ver esta funcin.
Para leer el componente la instancia debe tener un nombre; para
saber si est en true o false obtendremos el dato mediante el
procedimiento nombre.getValue().
Luis Gil-Guijarro
- 55 -
Luis Gil-Guijarro
- 56 -
Luis Gil-Guijarro
- 57 -