Professional Documents
Culture Documents
Flash Professional CS5 es una potente herramienta desarrollada por Adobe que ha
superado las mejores expectativas de sus creadores.
Flash fue creado con el objeto de realizar animaciones y diseos vistosos para la web, y
grficos interactivos.
Los motivos que han convertido a Flash en el programa elegido por la mayora de los
diseadores web profesionales y aficionados son varios. Veamos pues, porque es
interesante Flash Pro CS5.
Desde la web de Adobe te puedes descargar una versin de evaluacin de Flash
Professional CS5 vlida para 30 das. Esta versin estar disponible hasta que salga la
siguiente.
Los logotipos de Flash son propiedad de Adobe, as como las marcas registradas Flash
y Adobe. aulaClic no tiene ninguna relacin con Adobe.
Adobe suele integrar todos sus productos en una suite nica en la que prima, sobre
todo, la compatibilidad entre ellos. As la compaa se desmarca del resto ofreciendo un
paquete de aplicaciones muy completas como hemos ido viendo ao tras ao, que son
capaces de interactuar entre ellas y nos ofrecen la posibilidad de reutilizar proyectos
creados con un programa en otro. De hecho, podemos usar herramientas ms potentes
de dibujo, como Illustrator, para crear nuestros grficos, y despus animarlos con Flash.
Vamos a ver las opciones ms destacadas que encontramos en esta ltima versin:
Motor de texto Text Layout Framework.
Flash CS5 ha cambiado profundamente el motor de texto que emplea. En nuevo motor
TLF, incluye bastantes mejoras, entre las que podemos destacar las siguientes:
El tiempo de carga. Mientras que una pgina HTML puede ocuparnos 10-20 KB
como media, una animacin Flash ocupa mucho ms. Evidentemente depende del
contenido que tenga, pero suelen superar los100 KB con facilidad, y si adems
incorpora sonidos es fcil que la cifra se dispare. Al ocupar ms espacio, el tiempo
que tardan estar visible el contenido Flash es mayor y no todos los visitantes estn
dispuestos a esperar... simplemente, se irn a otra pgina.
Por supuesto su fuerte uso en la web se debe a que tambin aporta ventajas:
Resumiendo, insertar o no contenido Flash en una pgina web puede ser cuestionable,
aunque depende de muchas cosas. An as, no hemos de olvidar que Flash tiene
muchsimas aplicaciones ms (hecho que ha provocado que otras compaas traten de
sacar a la venta "clnicos" del Flash). Por ejemplo, se puede usar Flash para la creacin
de DVDs interactivos (como los que incluyen las revistas de informtica, entre otras), la
creacin de banners publicitarios o lo que ms est de moda ahora: la creacin de dibujos
animados (os sorprendera saber la cantidad de dibujos animados conocidos creados o
animados mediante Flash). Adems, Flash tiene uso industrial, pues se emplea para
optimizar planos, crear diseos de interiores y trabajar con imgenes vectoriales en
general. No dejis de aprender a manejar el programa con ms futuro... (al menos en
cuanto a diseo web)
Aqu tenis algunas pginas interesantes hechas con FLASH NRG y fwa, o con
entradas muy llamativas http://www.derbauer.de/,
Nuestro consejo es emplear Flash nicamente en lo imprescindible en nuestra web
dejando el contenido principal de la web y los elementos de navegacin como HTML, que
la web pueda funcionar si un usuario no puede ver los elementos en Flash y no se pierda
nada realmente importante, a no ser que se trate de una web en la que su valor sea
justamente su contenido interactivo o visual en Flash.
de
horas,
pero
nada
ms
lejos
de
la
realidad.
Ahora, se determina el tiempo que durar cada movimiento (es decir, el tiempo que
transcurre entre los instantes en los que la pelota est arriba y abajo) y por ltimo se le
indica a Flash que cree una animacin de movimiento entre estos fotogramas. Fcil
verdad?
La Barra de Mens tiene como propsito facilitar el acceso a las distintas utilidades del
programa. Es similar a la de cualquier otro programa de diseo web o grfico, aunque
tiene algunas particularidades. Veamos los principales Submens a los que se puede
acceder:
Archivo: Permite crear nuevos archivos, abrirlos, guardarlos... Destaca la potencia de
la utilidad Importar que inserta en la pelcula actual casi todo tipo de archivos (sonidos,
vdeo, imgenes e incluso otras pelculas Flash), o la de Configuracin de
Publicacin desde donde se pueden modificar las caractersticas de la publicacin.
Tambin permite configurar la impresin de las pginas, imprimirlas...
Edicin: Es el clsico men que te permite Cortar, Copiar, Pegar... tanto objetos o
dibujos como fotogramas; tambin permite personalizar algunas de las opciones ms
comunes del programa.
Ver: Adems de los tpicos Zooms, te permite moverte por los fotogramas y por las
escenas. Tambin incluye la posibilidad de crear una cuadrcula y unas guas. Esto se
puede seleccionar desde los submens Cuadrcula y Guas desde donde tambin se
pueden configurar sus opciones.
Insertar: Permite insertar objetos en la pelcula, as como nuevos fotogramas, capas,
acciones, escenas...
Modificar: La opcin Transformar permite modificar los grficos existentes en la
pelcula, y la opcin Trazar Mapa de Bits convierte los grficos en mapas vectoriales
(este tema se tratar ms adelante). El resto de opciones permite modificar caractersticas
de los elementos de la animacin Suavizar, Optimizar o de la propia pelcula (Capa,
Escena ...).
Texto: Sus contenidos afectan a la edicin de texto. Ms adelante se tratar en
profundidad.
Comandos: Permite administrar los Comandos (conjunto de sentencias almacenadas
que permiten emular lo que un usuario pueda introducir en el entorno de edicin) que
hayamos almacenado en nuestra animacin, obtener otros nuevos de la pgina de
Macromedia o ejecutar los que ya tengamos.
Control: Desde aqu se modifican las propiedades de reproduccin de la
pelcula. Reproducir, Rebobinar, Probar Pelcula....
1) Los Fotogramas (frames) que vienen delimitados por lneas verticales (formando
rectngulos)
2) Los Nmeros de Fotograma que permiten saber qu nmero tiene asignado cada
fotograma, cunto dura o cundo aparecer en la pelcula.
Adems, en la parte inferior hay herramientas para trabajar con Papel cebolla e
informacin sobre el Nmero de Fotograma actual (1 en la imagen), la Velocidad de los
Fotogramas (24.0 en la imagen) y el Tiempo de pelcula transcurrido (0.0s en la
imagen).
A nivel conceptual, la Lnea de Tiempo representa la sucesin de Fotogramas en el
tiempo. Es decir, la pelcula Flash no ser nada ms que los fotogramas que aparecen en
la Lnea de tiempo uno detrs de otro, en el orden que establece la misma Lnea de
tiempo.
Para saber ms acerca de la Lnea de Tiempo y de los distintos tipos de fotogramas
que existen visita nuestra Pgina Avanzada
2.5. El Escenario
A continuacin veremos las diferentes partes que conforman el rea de trabajo
empezaremos con la ms importante: el Escenario.
Sobre el escenario dibujaremos y colocaremos los diferentes elementos de la pelcula
que estemos realizando. El escenario tiene unas propiedades muy importantes, ya que
coinciden con las Propiedades del documento. Para acceder a ellas, hagamos clic con
el botn derecho sobre cualquier parte del escenario en la que no haya ningn objeto y
despus sobre Propiedades del documento:
Aade metadatos a tus archivos para una mejor inclusin de estos en los motores de
busqueda rellenando los campos de Ttulo y Descripcin.
Dimensiones: Determinan el tamao de la pelcula. El tamao mnimo es de 1 x 1 px
(pxeles) y el mximo de 2880 x 2880 px.
Unidades de Regla: Unidad que se emplear para medir las cantidades.
Color de Fondo: El color aqu seleccionado ser el color de fondo de toda la pelcula.
Veloc. Fotogramas: O nmero de fotogramas por segundo que aparecern en la
pelcula. Para cambiar este nmero, arrastra con el cursor hacia la derecha o izquierda.
Transformar en predeterminado: Este botn permite almacenar las propiedades del
documento actual y aplicarlas a todos los documentos nuevos que se creen desde ese
instante en adelante. Estas propiedades por supuesto podrn ser alteradas desde este
panel cuando se desee.
La Herramienta Zoom
permitiendo abarcar ms o menos zona del Entorno de Trabajo. Cada vez que hagamos
clic en con el Zoom duplicaremos el porcentaje indicado en el desplegable Zooms.
Ahora slo bastar darle un nombre a la disposicin y ser accesible desde el mismo
elemento de men Espacio de trabajo en cualquier momento.
Todos los paneles se estudiarn en profundidad a lo largo del curso. An as, vamos a
nombrarlos y a resumir las funciones de la mayora de ellos.
Panel Alinear: Coloca los objetos del modo que le indiquemos. Muy til.
Panel Color: Mediante este panel creamos los colores que ms nos gusten.
Panel Muestras: Nos permite seleccionar un color de modo rpido y grfico.
(Incluidas nuestras creaciones).
Panel Informacin: Muestra el tamao y las coordenadas de los objetos
seleccionados, permitindonos modificarlas. Muy til para alineaciones exactas.
Panel Escena: Modifica los atributos de las escenas que usemos.
Si an no sabes lo que son las Escenas, te lo explicamos en nuestro tema
bsico
.
Panel Transformar: Ensancha, encoge, gira ... los objetos seleccionados.
Panel Acciones: De gran ayuda para emplear Action Script y asociar acciones a
nuestra pelcula.
Panel Comportamientos: Permiten asignar a determinados objetos una serie de
caractersticas (comportamientos) que despus podrn almacenarse para aplicarse
a otros objetos de forma rpida y eficaz.
Panel Componentes: Nos permite acceder a los Componentes ya construidos y
listos para ser usados que nos proporciona Flash. Los componentes son objetos
"inteligentes" con propiedades caractersticas y muchas utilidades (calendarios,
scrolls etc...)
Panel Cadenas: Mediante este panel Flash aporta soporte multi-idioma a nuestras
pelculas.
Panel Respuestas: Macromedia pone a nuestra disposicin ayuda y consejos
accesibles desde este panel.
Panel Propiedades: Sin duda, el panel ms usado y ms importante. Nos muestra
las propiedades del objeto seleccionado en ese instante, color de borde, de fondo,
tipo de trazo, tamao de los caracteres, tipografa, propiedades de los objetos (si hay
interpolaciones etc...), coordenadas, tamao etc... Es fundamental, no debeis
perderlo de vista nunca.
Panel Explorador de Pelculas: Nos permite acceder a todo el contenido de nuestra
pelcula de forma fcil y rpida
Herramienta Texto:
Crea un texto en el lugar en el que hagamos clic. Sus
propiedades se vern en el tema siguiente.
Herramienta Lnea:
Permite crear lneas rectas de un modo rpido. Las lneas
se crean como en cualquier programa de dibujo, se hace clic y se arrastra hasta
donde queramos que llegue la lnea recta. Una vez creada la podemos modificar
situando el cursor encima de los extremos para estirarlos y en cualquier otra parte
cercana a la recta para curvarla.
Herramienta Lpiz:
Es la primera herramienta de dibujo propiamente dicho.
Permite dibujar lneas con la forma que decidamos, modificando la forma de estas a
nuestro gusto. El color que aplicar esta herramienta se puede modificar, bien desde
el Panel Mezclador de Colores o bien desde el subpanel Colores que hay en
la Barra de Herramientas.
Herramienta Pincel:
Su funcionalidad es parecida a la del lpiz, pero por defecto
su trazo es ms grueso e irregular. Se suele emplear para aplicar rellenos. Se puede
modificar suherramientas.
Herramienta Borrador:
Su funcionamiento es anlogo a la Herramienta Pincel.
Pero su funcin es la de eliminar todo aquello que "dibuje".
de dibujo. Permite hacer selecciones segn los colores de los objetos. El tercer dibujo que
aparece es este:
Herramienta Pluma:
modo sencillo. Mucha gente encuentra esta herramienta complicada, aunque es una de
las ms potentes que ofrece Flash. Su empleo consiste en hacer clic en los lugares que
queramos definir como vrtices de los polgonos, lo que nos asegura una gran precisin.
Para crear curvas, hay que sealar los puntos que la delimitan y posteriormente trazar las
tangentes a ellas. Con un poco de prctica se acaba dominando.
Herramienta Subseleccin:
Esta
Herramienta
complementa
la
Herramienta Pluma, ya que permite mover o ajustar los vrtices que componen los
objetos creados con dicha herramienta.
Herramienta Bote de Tinta:
trazo. Se aplica sobre objetos, si tienen borde, cambia al color mostrado de dicho borde,
por
el
mostrado
en
el
PanelMezclador
de
Colores (que
coincide
con
el
podamos
Su
utilizarlos.
misin
Para
es
ver
"capturar"
cmo
colores
funciona,
para
que
consulta
este
videotutorial:
otros, es decir, para que en caso de ser posible, sus bordes se superpongan, dando la
sensacin de estar "unidos".
Suavizar:
Enderezar:
ms rectilneos.
El Panel Color, como su nombre indica se usa para fabricar nuestros propios colores y
para seleccionar los que ms nos gusten.
Para seleccionar un color determinado, bastar con hacer clic en las pestaas que se
encuentran junto a los iconos de las herramientas de Lpiz y de Bote de Pintura. (Si
queremos modificar el color de un borde, pulsaremos sobre el color que est junto al
lpiz
al bote de pintura
que seleccionemos el que ms nos gusta. Tambin permite introducir el cdigo del color
segn el estndar.
En vez de este selector rpido, podemos usar el panel Color, que encontraremos entre
los paneles.
As mismo se puede determinar el tipo de relleno que aplicaremos a los objetos creados
(mediante la herramienta Bote de Pintura).
El Panel Muestras sirve para poder ver de un modo rpido y claro los colores de que
disponemos, tanto slidos (un solo color) como degradados (lineales o radiales). Adems,
cuando creemos un color mediante el Panel Color, podremos agregarlo a nuestro
conjunto de muestras mediante Agregar Muestra (que se encuentra en un men
desplegable en la parte superior derecha del panel Color). Una vez est agregado el
color, pasar a estar disponible en nuestro conjunto de muestras y podremos acceder a l
rpidamente cada vez que trabajemos con nuestra pelcula.
Cada pelcula tiene su propio conjunto de muestras y cada vez que la abramos para
editarla, podremos usar las muestras que tenamos la ltima vez que trabajamos con
dicha pelcula.
Para insertar un Texto de puntos, basta con hacer clic con la herramienta Texto y comenzar a
escribir. En cambio, si queremos introducir un Texto de rea, tenemos que hacer clic y
arrastrar para definir el tamao del rea. En cualquier caso, siempre podemos convertir un
Texto de puntos en rea simplemente cambiando su tamao, estirando de los controles de
transformacin que se muestran alrededor.
Observars que las imgenes anteriores muestran distintas opciones para el texto. Esto
se debe a que la de la izquierda tiene seleccionada el motor Texto TLF, que nos permite
muchas ms opciones. La de la derecha tiene establecido el motor Texto clsico, y
aparecen menos opciones, las que venamos encontrando en la anterior versin del
programa.
Si quieres saber cmo utilizar el texto clsico, puede seguir este avanzado
Nota: El motor de texto TLF requiere publicar los archivos como ActionScript 3 y
FlashPlayer 10 o posterior. Si necesitas publicar archivos para versiones anteriores,
debers de emplear el motor clsico.
Veamos las principales opciones del panel Propiedades, comunes a ambos motores.
Otras ms especficas las veremos ms adelante, cuando vayamos a emplearlas:
Podemos elegir cmo se comporta el texto: Si es Seleccionable, y el usuario lo podr
seleccionar y copiar en el portapapeles, Slo lectura, lo que impedir que lo pueda
seleccionar, o si lo puede cambiar (Editable), por ejemplo, para introducir datos.
En el panel encontramos las coordenadas horizontal (X) y vertical (Y) del la esquina
superior del elemento de texto, coincidiendo las coordenadas 0 0 con la esquina superior
izquierda de la escena. Tambin se muestran los valores del ancho (AN) y alto (AL) del
texto.
Carcter. En esta seccin encontramos las opciones tpicas del texto:
Familia:
en los editores de texto ms comunes podemos seleccionar el tipo de letra o "fuente" que
mejor se ajuste a nuestro diseo.
Estilo: Nos permiten la combinacin de los dos estilos de texto habituales: texto normal
(Regular), en cursiva (Italic), negrita (Bold) o negrita cursiva (Bold Italic).
Ajuste automtico: Activar esta casilla provoca que la separacin entre caracteres se
Giro y otros estilos: Al final de este grupo de opciones encontramos las opciones para
rotar el texto seleccionado, y aplicarle estilos de subrayado, tachado, superndice y
subndice.
Carcter avanzado:
Vnculo: Si queremos que al pulsar sobre nuestro texto, el usuario vaya a una direccin
web, nada ms fcil que escribirla ah. Flash la asociar al texto que ests escribiendo en
ese momento.
Destino: Determina si la URL a la que el texto hace referencia se cargar en la misma
ventana del navegador, en una nueva ...
Adems, en esta seccin podemos especificar cmo se comporta el texto Por ejemplo,
que se muestre en maysculas, los saltos, etc...
Centrar:
prrafo.
A la derecha:
quede "dentado" por ninguno de sus lmites. Las diferentes opciones se refieren a la
ltima lnea del texto, que suele ser ms corta que el resto.
El resto de opciones nos permiten determinar los mrgenes (izquierdo y derecho), los
sangrados de prrafo y el espacio interlineal.
Caracteres mx.: Nos permite limitar el nmero mximo de caracteres que se pueden
introducir en la caja de texto.
Alineacin: nos permite establecer la alineacin horizontal del texto en el contenedor.
Sus valores pueden ser Superior, Centrar, Inferior o Justificar.
.
El relleno (padding) permite crear una separacin entre los bordes del contenedor y el
texto.
Adems, podemos asignar un color de relleno y borde al contenedor.
Podemos dar a la pelcula efectos simples (el tpico "clic" al pulsar un botn), efectos
complejos (msica de fondo) e incluso podemos hacer que la animacin se desarrolle
conjuntamente con una msica (si bien esto ltimo necesitara que toda la pelcula
estuviera descargada previamente, para evitar "atascos" durante el desarrollo de la
animacin). En definitiva, Flash nos lo vuelve a poner fcil.
Pero hemos de tener cuidado al incluir sonidos, sobre todo si son melodas. Es
preferible que sea el usuario quien las active a travs de un botn, o si es necesario que
se reproduzcan automticamente, tener un control fcilmente localizable para silenciarlo.
Utilizar sonidos externos. Podemos insertar en una pelcula de Flash sonidos que
tengamos en formato digital: grabados por nosotros mismos, descargados de internet,
etc...Pero para que est disponible en nuestra pelcula y podamos usarlo, antes debemos
de importarlo.
Realmente debemos de importar a flash cualquier archivo externo que queramos usar:
sonidos, grficos, e incluso con otras pelculas Flash. Importar por tanto, no es ms que
decirle a Flash que aada un determinado archivo a nuestra pelcula, para que podamos
usarlo cuando queramos. En realidad, lo aade a nuestra Biblioteca, que es el Panel en
el que estn todos los objetos que participan en la pelcula (este panel se ver ms
adelante).
As pues si queremos manejar un sonido en nuestra pelcula, deberemos importarlo
previamente.
Una vez est importado, podremos usarlo con total libertad.
Para importar un sonido haz clic en el men Archivo Importar Importar a
biblioteca.
sonido
estar
listo
para
usarlo
donde
quieras,
podrs
encontrarlo
en
Efecto: Desde aqu podremos aadir algn efecto a nuestro sonido, como por
ejemplo que el sonido pase del canal izquierdo al derecho (esto crea la sensacin de que
el sonido te envuelve ya que lo oyes por un sitio y luego por otro, aunque queda muy lejos
de los verdaderos sonidos envolventes), que el volumen aumente progresivamente etc...
Si deseamos aadir complejos efectos sonoros, deberemos tratar adecuadamente el
sonido con algn programa creado especficamente para este propsito antes de
importarlo.
En el punto Editar Sonidos se tratar en ms profundidad estos efectos.
sonidos ocupen ms de la mitad del espacio total y muchas veces no valdr la pena
insertarlos...
Una vez decididos a insertar el sonido, la lgica nos dice que insertemos el sonido que
ocupe un espacio menor en el disco duro, ya que este espacio es el que ocupar en
nuestra pelcula. Esto es una aproximacin, ya que Flash comprime todo aquello que
insertamos en nuestras pelculas.
Como ya sabemos, los sonidos .mp3 ocupan un espacio mucho menor que los
sonidos .wav (10 veces menos o ms), por lo que parece recomendable insertar .mp3 en
lugar de .wav, ahora bien Puede Flash comprimir un sonido ya comprimido? Es decir, si
un sonido .wav ha sido comprimido y ahora tiene extensin .mp3, podr Flash volver a
comprimirlo? La respuesta es NO. Flash comprime los sonidos que insertamos en
nuestras pelculas, pero si el sonido resulta estar ya comprimido, no podr volver a
comprimirlo (en realidad si que consigue comprimirlo, pero el sonido final es el mismo que
el inicial).
Ahora que ya sabemos esto, nos falta saber si Flash comprime un archivo .wav ms de
lo que comprime el formato .mp3, para ver bien este aspecto, hemos preparado varios
ejemplos...
Ejemplo:
Contamos con una pelcula con un nico frame que est vaco. Esta pelcula, una vez
lista para ser vista (.swf) ocupa 1KB.
Tenemos 1 sonido .wav que ocupa 1596 KB
Comprimimos dicho sonido con un programa compresor de audio y obtenemos el
mismo sonido en formato .mp3, ocupa 145 KB. (La calidad de sonido es prcticamente
idntica).
Ahora insertamos el sonido .wav en la pelcula original y la exportamos (esto se trata en
el ltimo tema).
Resultado: Una pelcula con sonido (pelcula 1) que ocupa 37KB.
Insertamos despus el sonido .mp3 en la pelcula original.
Resultado: Una pelcula con sonido (pelcula 2) que ocupa 145 KB
Conclusin: La pelcula con un sonido .wav ocupa casi 5 veces menos que la que tiene
el mismo sonido en .mp3, por tanto parece recomendable insertar sonidos .wav (la
compresin de audio que logra Flash es muy grande). Como contrapartida, podra
apreciarse prdida de calidad en el sonido que se escucha en la pelcula 1. Esta prdida
ser importante segn el tipo de sonido que sea. Si es una voz, por ejemplo, deberamos
insertar .mp3 ya que necesariamente deber escucharse bien, si es msica de fondo, es
probable que aunque se pierda calidad, el resultado final sea aceptable y sea conveniente
quedarnos con la pelcula de menor tamao. Lo mejor es probar ambas versiones y
evaluar el resultado.
Puedes ver varias pruebas en estas pelculas:
Msica de Fondo
Pelcula con sonido (msica) en formato .wav. Pelcula con sonido (msica) en formato .mp3.
Tamao
Total: 37
KB. Tamao
Total: 145
KB.
Calidad: Buena
Calidad: Buena
Sonido "Voz"
sonido
(voz)
en .mp3.
Total: 67KB.
Por ltimo, comentar que Flash no puede importar sonidos en formato MIDI (.mid). An
as, si estamos empeados en que en nuestra animacin el sonido sea un MIDI y no
queremos o podemos conseguir un programa que convierta el sonido MIDI a WAV o MP3
existe una forma de hacerlo consistente en el uso combinado de Flash y Javascript.
Igualmente, como se coment en el Tema 1, Flash CS5 permite cargar sonidos de un
modo dinmico (sin que ocupen espacio), esto se tratar en el Tema 17 "Action Script".
Como ya se ha comentado, los sonidos que Flash CS5 puede importar casi cualquier
tipo de sonido, aunque los ms empelados son MP3 y WAV. Si no sabes las diferencias
entre estos tipos de archivos, puedes consultar nuestro tema bsico
Pelcula con sonido (msica) en formato .wav. Pelcula con sonido (msica) en formato .mp3.
Tamao
Total: 37
KB. Tamao
Total: 145
KB.
Calidad: Buena
Calidad: Buena
Sonido "Voz"
sonido
(voz)
en .mp3.
Total: 67KB.
Por ltimo, comentar que Flash no puede importar sonidos en formato MIDI (.mid). An
as, si estamos empeados en que en nuestra animacin el sonido sea un MIDI y no
queremos o podemos conseguir un programa que convierta el sonido MIDI a WAV o MP3
existe una forma de hacerlo consistente en el uso combinado de Flash y Javascript.
Igualmente, como se coment en el Tema 1, Flash CS5 permite cargar sonidos de un
modo dinmico (sin que ocupen espacio), esto se tratar en el Tema 17 "Action Script".
6.2. Seleccionar
Para poder trabajar con objetos, es fundamental saber seleccionar la parte del objeto
que queramos modificar (mover, girar, cambiar de color...). Podremos observar que las
partes de un objeto seleccionadas toman una apariencia con textura (entramado de
puntos blancos) para indicar que estn seleccionadas.
seleccionar. Si esta rea corta una forma, slo quedar seleccionada la parte del objeto
que est dentro del rea que hemos delimitado. Si quisiramos incluir dicho objeto,
bastara con usar la tecla SHIFT y seleccionar la parte del objeto que falta por seleccionar.
Este modo de seleccionar objetos permite seleccionar muchos objetos rpidamente,
adems de permitirnos seleccionar determinadas zonas de los objetos, para cortarlas,
pegarlas...
Adems de la Herramienta Seleccionar, tambin podemos usar la Herramienta Lazo,
ms til an si cabe. Nos permite seleccionar cualquier zona de cualquier forma (la forma
la determinamos nosotros) del objeto que sea. Al contrario que la Herramienta Flecha, las
reas seleccionadas no tienen porque ser rectangulares.
Seleccionar a partir de la Lnea de Tiempo: Si seleccionamos un determinado
fotograma en la lnea de tiempo, se seleccionan automticamente todos los objetos que
estn en dicho fotograma. Esto es til para modificar de un modo rpido todos los
elementos del fotograma.
Seleccionar Todo: La forma ms natural de seleccionar todo, consiste en hacer clic en
el men Edicin Seleccionar Todo.
Ahora que ya sabemos seleccionar los objetos o las partes de estos que consideremos
oportunas, veamos cmo colocarlos en el Escenario.
Para colocarlos de un modo preciso (por no decir exacto), Flash pone a nuestra
disposicin
el Panel
Alinear.
Este
Panel
lo
podemos
encontrar
en
el
El Panel Alinear permite colocar los objetos tal y cmo le indiquemos. Antes de ver las
posibilidades, debemos hacer hincapi en la opcin Alinear en escenario. Esta opcin
nos permite decir a Flash que todas las posiciones que indiquemos para nuestros objetos
tomen como referencia el escenario.
Si esta opcin no est seleccionada, los objetos toman como referencia al conjunto de
objetos en el que se encuentran, y se colocan en funcin de ellos. Lo ms habitual es
seleccionar En Escenario, para que los objetos se coloquen segn los lmites de la
pelcula, en el centro del fotograma etc...
Conozcamos un poco mejor el Panel Alinear y sus posibilidades:
Alineamiento:
Sita
los
objetos
en
una
determinada posicin del fotograma (si est seleccionado En Escena). Las distintas
opciones afectan a todos los elementos seleccionados y se emplean muy a menudo para
situar los objetos en determinados sitios predefinidos. Por ejemplo: Si quisiramos situar
un objeto en la esquina inferior izquierda, bastara pulsar el primer y el sexto botn
consecutivamente.
Por ejemplo, si queremos que coincida el centro de dos objetos los alineamos al centro
horizontal y verticalmente.
Distribuir:
funcin de unos ejes imaginarios que pasan por cada uno de ellos, de modo que la
distribucin de los mismos sea uniforme. Por ejemplo, si tenemos 2 cuadrados y pulsamos
el primer botn de la izquierda. Cada uno de los 2 cuadrados se situar en un extremo de
la pelcula (uno arriba y otro abajo).
Coincidir Tamao:
est activo Alinear en escenario estirar los objetos hasta que coincidan con el ancho y
el largo de la pelcula. Si no est activo, la referencia ser el resto de objetos. Por ejemplo,
si tenemos 2 cuadrados distintos y la opcin Alinear en escenario no est activada, al
hacer clic en el primer botn de "Coincidir Tamao", el cuadrado ms estrecho pasar a
tener la anchura del cuadrado ms ancho. Si Alinear en escenario hubiera estado activo
ambos cuadrados hubieran pasado a tener el ancho del fotograma.
Espacio:
Para ver ejemplos de uso de estos comandos, podis ver la animacin situada arriba al
principio del captulo.
nuestro objeto en la medida seleccionada en las Propiedades del documento. AN: hace
referencia a la anchura yAL: a la altura.
Situacin del objeto:
suceda algo en la pelcula al pasar el cursor justo por una posicin determinada o para
situar partes del objeto en lugares especficos.
lo queremos. Para ello, basta seleccionar los objetos que queremos que formen parte de
un grupo y despus hacer clic en el Men Modificar Agrupar (Ctrl + G).
Tras hacer esto observaremos que desaparecen las texturas que indicaban que los
objetos estaban seleccionados y observamos que el grupo pasa a ser un "todo", ya que
resulta imposible seleccionar a uno de sus miembros sin que se seleccionen a su vez los
dems. Adems, aparece el rectngulo azul (por defecto) que rodea al grupo, definindolo
como tal.
Crear grupos es muy til, ya que nos permite, como ya hemos dicho, tratar al conjunto
de objetos como un todo y por tanto, podemos aplicar efectos al conjunto, ahorrndonos la
labor de hacerlo de objeto en objeto.
Por ejemplo, supongamos que tenemos un dibujo que representa un conjunto de
coches. Tras dibujarlos todos, nos damos cuenta de que queremos aumentar el tamao
de los coches. Podemos aumentar el tamao de los coches de uno en uno, corriendo el
riesgo de aumentar unos ms que otros y perdiendo las proporciones entre ellos, o
podemos formar un grupo con los coches y aumentar el tamao del grupo, de modo que
aumenten todos de tamao a la vez y en la misma proporcin. De igual modo, podemos
mover al grupo de posicin, hacer que gire...
Al crear un grupo, simplemente estamos dando unas propiedades comunes a un
conjunto de objetos y, en ningn caso perdemos nuestro objeto. En cualquier momento
podemos deshacer el grupo, mediante el Men Modificar Desagrupar.
Adems, Flash nos permite modificar los elementos de un grupo sin tener que
desagruparlo. Para ello, seleccionamos el Grupo de elementos y hacemos clic en el
Men Edicin Editar Seleccionado, o directamente hacemos doble clic sobre el grupo
con la herramienta Seleccionar. Podremos editar los objetos que componen el grupo por
separado teniendo en cuenta que, como es lgico, los cambios realizados afectarn al
grupo adems de al elemento en cuestin.
Otra razn para separar los objetos en capas, es que Flash nos obliga a colocar
cada animacin distinta en una capa. De lo contrario, todos los objetos que se
encuentren en dicha capa formarn parte de la animacin. Si queremos que un objeto no
forme parte de una animacin, deberemos quitarlo de la capa en la que se produce dicha
animacin.
Siguiendo con el ejemplo del portero, si quisiramos crear un movimiento que haga que
el portero se desplace hacia un lado no hay ningn inconveniente, pero si la portera
estuviera en la misma capa que el portero, entonces ambos objetos se moveran hacia
dicho lado, con lo que resultara imposible que slo se moviera el portero. La solucin es
separar los objetos en 2 capas, como ya hemos hecho.
Las capas adems, tienen otras utilidades, nos permiten ordenar nuestra pelcula de
forma lgica, y nos ayudan en la edicin de dibujos (evitando que se "fundan" en uno slo,
o bloqueando el resto de capas de modo que slo podamos seleccionar la capa que nos
interese).
Otro motivo es para organizar mejor nuestro contenido. Igual que crebamos una
capa para los elementos de audio, crearemos capas para otros elementos, como el cdigo
ActionScript.
La vista estndar de una capa es la que muestra la imagen. Veamos para qu sirven los
distintos botones y cmo usarlos.
Nueva capa
escena actual. Crea capas normales (en el siguiente punto se vern los distintos tipos de
capas).
Crear carpeta
nuestras capas.
Borrar Capa
Cambiar Nombre: Para cambiar el nombre a una capa, basta con hacer doble clic en
el nombre actual.
Propiedades de Capa: Si hacemos doble clic sobre el icono
junto al nombre de la
capa, podremos acceder a un panel con las propiedades de la capa en la que hayamos
hecho clic. Podremos modificar todas las opciones que hemos comentado anteriormente y
alguna ms de menor importancia.
Aqu puedes cambiar diferentes opciones sobre la capa, como su nombre o su color.
Tambin puedes bloquearla u ocultarla.
Pero haremos especial hincapi en la opcin Tipo cuyas opciones, Gua y Mscara,
veremos ms adelante en el curso.
pelcula. Es muy til cuando tenemos muchas capas y slo queremos ver una de ellas ya
que permite ocultar todas a la vez, para despus mostrar slo la actual. Para activar la
vista de una capa en concreto (o para ocultarla) basta con hacer clic en la capa
correspondiente en el punto (o en la cruz) que se encuentra bajo el icono "Mostrar /
Ocultar capas"
Bloquear Capas
contenidos de todas las capas como si slo estuviesen formados por bordes. De este
modo y ante un conjunto numeroso de objetos, podremos distinguirlos a todos de forma
fcil y podremos ver en qu capa est cada uno de ellos.
Tambin se puede activar o desactivar para cada capa de un modo similar a los
anteriores botones.
Veamos como se muestran estas opciones activadas y desactivadas.
Como ya se ha comentado, las distintas capas tienen muchas cosas en comn unas
con otras. Lo primero y principal es la Lnea de tiempo, todas las capas de una misma
escena comparten la misma lnea de tiempos y por tanto, los objetos de todos los
fotogramas 1 de todas las capas se vern al mismo tiempo en la pelcula superpuestos
unos sobre otros. y qu objeto est delante de los dems? Pues este criterio viene dado
por la colocacin de las Capas en la pelcula. Los objetos que se mostrarn delante de
todos los dems sern aquellos que se encuentren en la capa situada ms arriba.
Es decir, si nos fijamos en el ejemplo anterior:
El portero aparece delante de la portera, porque la capa "Portero" est situada encima
de la capa "Portera", como puede apreciarse en la imagen. Si quisiramos cambiar esta
distribucin, basta con hacer clic en la capa que queramos mover y arrastrarla hacia arriba
o hacia abajo hasta la posicin deseada.
Veremos como los objetos se colocan delante o detrs de los de la capa seleccionada
segn su capa se encuentre por encima o por debajo de la nuestra.
Para mover un objeto de una capa a otra, deberemos seguir unos sencillos pasos.
Aprende a hacerlo realizando el ejercicio paso a paso Mover objetos entre capas.
Para mover un fotograma de una capa a otra, basta con seleccionar el fotograma a
mover y arrastrarlo hasta la capa donde queramos pegarlo. Tambin se puede Copiar el
fotograma y luego pegarlo en la capa de destino.
Capas normales
propiedades descritas en los puntos anteriores. Son las ms usadas y se emplean para
todo, colocar objetos, sonidos, acciones, ayudas...
Capas animacin movimiento
interpolacin de movimiento.
Capas Gua
las animaciones de movimiento de objetos y su nico fin es marcar la trayectoria que debe
seguir dicho objeto. Debido a que su misin es representar la trayectoria de un objeto
animado, su contenido suele ser una lnea (recta, curva o con cualquier forma).
En esta imagen podemos ver el contenido de 2 capas. La primera de ellas contiene la
bola azul y la segunda contiene la lnea curva. La segunda capa la hemos definido como
Capa Gua, para que al realizar la animacin de movimiento (esto lo veremos en un tema
posterior) su contenido no se vea en la pelcula, sino que sirva de recorrido para la
bola azul.
Es importante recordar que el contenido de las Capas Gua no se ver en la pelcula
final. Su efecto har que la pelota azul se desplace de un extremo de la lnea al otro
siguiendo esa ruta.
Capas guiadas (Guided Layers) : Definir una capa como gua no tiene sentido
hasta que definamos tambin una capa guiada. Esto es, una capa que quedar afectada
por la gua definida en la Capa gua.
Si no definimos una capa guiada, la capa gua no tendr ningn efecto y si bien no se
ver en la pelcula (por ser una capa gua) tampoco provocar ningn efecto en las dems
capas. En la imagen anterior, la bola azul se deber encontrar en una capa Guiada, de lo
contrario no seguir la ruta marcada por la capa gua.
Las capas gua y las capas guiadas se relacionan entre s de un modo evidente. A cada
capa gua le corresponden una serie de capas guiadas.
Al asociar una capa gua con una capa guiada, el icono que representa a la capa gua
cambia, indicndonos que est realizando correctamente su labor.
En la imagen podemos ver un ejemplo de capa gua y capa guiada correctamente
asociadas entre s. (La capa llamada inferior es, evidentemente, la capa con Gua)
Capas Enmascaradas
ya que son las capas que estn bajo las mscaras y a las que afectan. Al igual que las
capas gua y las capas guiadas deben ir asociadas unas a otras para que su efecto sea
correcto.
Sus objetos s que son visibles en la pelcula final, pero slo cuando algn objeto de la
capa Mscara est sobre ellos.
La accin de crear un nuevo smbolo es una de las ms usadas en Flash ya que es uno
de los primeros pasos para crear una animacin, como veremos ms adelante.
El procedimiento es el siguiente:
4. Slo nos queda seleccionar el tipo de smbolo (desplegable Tipo) al que queremos
convertir nuestro objeto. Podemos elegir entre Clip de Pelcula, Botn y Grfico.
Sus caractersticas y las diferencias entre ellos las veremos en temas posteriores. Lo
ms habitual es Clips de pelcula para los objetos que queremos mostrar en el
escenario, y Botn si queremos que acte como tal.
5. Bastar con pulsar Aceptar para tener nuestro smbolo creado.
En Flash CS5 podemos encontrar dos tipos de bibliotecas, las bibliotecas comunes y
de ejemplos y aquellas asociadas a las pelculas que hemos creado. Todas ellas las
tenemos a nuestra disposicin para utilizar los smbolos que contienen.
Para acceder a las bibliotecas comunes que nos ofrece Flash simplemente tenemos
que ir a al men Ventana Bibliotecas Comunes y seleccionar alguna de las que se
nos ofrecen. Las hay de todo tipo de smbolos: botones, clips o grficos.
Botn
Grfico
pelcula,
ste
se
convierte
en
una
instancia
del
smbolo.
Por tanto, podemos crear muchas instancias de un smbolo, pero a una instancia
solo le corresponder un smbolo.
Aunque parece que sean lo mismo, la importancia de esta distincin es que cuando
utilicemos un smbolo que hayamos creado previamente en una pelcula y lo
modifiquemos, solo alteraremos sa instancia, mientras que el objeto seguir intacto, tal y
como era en el momento de su creacin, de manera que podremos volverlo a utilizar en
otro momento. En cambio, si modificamos el smbolo de la biblioteca, alteraremos todas
sus instancias.
A la derecha tenemos un ejemplo de una biblioteca. Cada elemento de la biblioteca es
un smbolo.
podremos hacer que la instancia tenga ms brillo, pero no transformar una estrella en un
crculo).
Esos cambios debemos de hacerlos directamente sobre el smbolo. Aunque s
podremos crear un smbolo a partir de una instancia, lo que desvincular la instancia del
smbolo original.
seleccionamos
un
objeto
Flash
que
no
se
trate
de
un
smbolo,
el
Panel Propiedades mostrar las propiedades del objeto en cuestin, pero no las
caractersticas propias de los smbolos (cambios de color, intercambios etc...)
En el momento que seleccionemos un smbolo aparecern una serie de propiedades y
opciones que comentamos a continuacin:
Para acceder a los efectos aplicables sobre una instancia determinada, debemos acudir
nuevamente al Panel Propiedades, desde aqu podremos acceder a todos los efectos
Brillo. Se puede modificar su valor desde -100% al 100%, esto es, completamente
oscuro (negro) y completamente brillante (blanco). Puedes mover la barra deslizante o
introducir su valor directamente en la casilla.
Sobre el pez superior. Hemos aplicado un efecto Alfa del 65 % y hemos reducido al 45 %
la cantidad de verde a la vez que hemos multiplicado la cantidad de azul por 111,
obteniendo el tinte rosa translcido que se observa.
A medida que modifiquemos los efectos sobre las instancias, podremos ir viendo el
resultado sobre el propio escenario.
Es importante recalcar, que en los efectos anteriores estamos modificando instancias
de un smbolo, pero que el smbolo original sigue intacto.
9.1. Qu es un grfico?
Los Grficos son smbolos que nos permiten representar objetos estticos y
animaciones sencillas.
En caso de que utilicemos un smbolo grfico para realizar una animacin, debemos
tener en cuenta que sta estar ligada a la lnea de tiempo de la pelcula en la que se
encuentre. Es decir, la animacin se reproducir siempre y cuando la pelcula original
tambin se est reproduciendo. Esto hace que, pese a tener su propia lnea de tiempo, no
puedan contener sonidos, controles ni otros smbolos grficos.
As pues, normalmente utilizaremos los grficos para imgenes estticas o para cuando
nos convenga que una animacin se reproduzca slo cuando determinado frame de la
lnea de tiempo de la pelcula est en marcha, ya que para los casos que hemos
comentado anteriormente en los que un grfico no nos es til, Flash nos ofrece otro tipo
de smbolos como veremos en temas posteriores.
Grfico esttico
a) Estticos: estos grficos se mantienen sin cambios cuando pasa el tiempo. Estos
grficos son los tpicos en los fondos y en los objetos que no desempean ninguna
funcin especial. Su tamao y por tanto, el tiempo de carga de este tipo de grficos,
aunque siempre depender de la resolucin, de sus dimensiones y de la forma en la que
estn creados *, ser en general reducido.
Animacin
b) Animaciones: este tipo de grfico vara su forma, posicin u otras propiedades a
medida que va pasando el tiempo. Puesto que para realizar la animacin se deben usar
varios grficos ms adems del original o bien realizar determinadas acciones que
modifiquen el estado inicial, el tamao de esta clase de grficos, para las mismas
dimensiones y forma de creacin, ser mucho mayor que uno esttico.
Por esto, aunque las animaciones dan a nuestra web un aspecto ms bonito y
espectacular tienen dos inconvenientes:
1) Si se trata de un Mapa de Bits (ahora veremos que significa esto) la web puede llegar
a tener un tamao excesivamente grande.
2) Aunque no se traten de mapas de bits, por ejemplo, si son animaciones tpicas de
Flash, cuyo tamao no es excesivo, el hecho de poner muchas animaciones puede llegar
a "marear" un poco al visitante de nuestro sitio y desviar su atencin de lo que realmente
importa, su contenido.
(*) Los tipos de grfico anteriores pueden ser, a su vez de dos tipos, segn la forma en
la que estn creados: Grfico Vectorial o Mapa de Bits. Para saber ms acerca de estos
dos tipos de grfico, chale un vistazo a nuestro tema bsico
Ahora tenemos que crear el objeto que queremos convertir en un smbolo Grfico.
Dibujemos, por ejemplo, un valo en cualquier lugar del rea de trabajo con la
herramienta valo
relleno que ser lo que despus animemos (Selecciona el fondo del valo y dale el color
azul mediante la herramienta Relleno de color.
).
Ahora vamos a crear la animacin del grfico. Puesto que todava no hemos visto a
fondo las animaciones, la vamos a realizar de una forma que quiz no sera la ms
apropiada la mayora de las veces, pero nos servir muy bien para este ejemplo. Para
ello selecciona nuestro grfico y pulsa el botn derecho del ratn. Se desplegar un
men, en el que seleccionaremos la opcin Edicin para modificar el grfico y acceder
a su lnea de tiempo. Comprueba que ests en la lnea de tiempos del grfico (justo
encima del escenario existe una secuencia que nos indica en qu nivel nos encontramos.
En la imagen inferior, se puede apreciar que nos encontramos en "Escena1 - Grfico
Animado" y, por tanto estamos dentro del grfico (y la lnea de tiempos que vemos es la
del grfico, y no la de la pelcula principal)
Pulsa sobre el frame 2 y cmbiale el color de fondo al valo como hicimos antes. Haz lo
mismo en los dos siguientes frames.
Tu lnea de tiempos debera tener este aspecto:
Pulsa donde pone Escena 1 justo encima del escenario y de este modo volveremos al
nivel inicial (Pelcula principal) y podremos ver nuestro grfico "desde fuera".
Ahora ya tenemos completo nuestro grfico animado. Qu crees que suceder si
reproducimos la pelcula? Comprobmoslo pulsando Control + Intro, se visualizar la
pelcula.
Y bien? Nada. Nada en absoluto. El valo sigue tal cual. Por qu? La respuesta est
en las caractersticas de los grficos que habamos explicado: la lnea de tiempos del
grfico va ligada a la de la pelcula.
En este caso la lnea de tiempos de la pelcula tena un solo frame, mientras que la del
grfico tena 4, por tanto, no le hemos dado tiempo al grfico a desarrollar su animacin;
slo ha reproducido un frame, el primero.
Cmo podemos solucionarlo?
Muy sencillo. Basta con recordar lo que hemos comentado, Cierra la ventana del
reproductor de Flash, selecciona el fotograma 5 de la pelcula principal y pulsa F6.
Ahora tenemos 5 fotogramas en la pelcula principal.
Pulsa de nuevo Control + Intro.
El resultado podra ser ste:
Guarda este archivo porque lo completaremos ms adelante.
Flash CS5 permite importar mapas de bits de otros programas, cuando han sido
guardados en formatos grficos GIF, JPG, TIFF y muchos ms. Tambin nos permite
modificarlos en cierto modo. Podemos cambiarle el tamao y convertirlo en un smbolo
para aprovechar las opciones que nos ofrece Flash aunque, teniendo en cuenta qu es un
bitmap, no podremos modificarlo "internamente" pero podremos usarlo como un smbolo
ms.
Para importar un archivo de Mapa de Bits al escenario haz clic en el
men Archivo Importar Importar a escenario.
que la mayora de mapas de bits no permiten animaciones, por esto el objeto flash que
exportemos no debera contener animacin ya que sta no se guardar.
Para realizarlo seleccionamos el objeto que vamos a exportar y accedemos al
men Archivo Exportar Exportar
Imagen... Luego
introducimos
en
el
campo Nombre el nombre que queremos que tenga nuestro nuevo bitmap.
Seleccionamos el tipo de mapa de bits en que deseemos convertir nuestro objeto y
pulsamos Guardar.
Ahora ya podemos usar nuestro objeto Flash como un bitmap.
Para entender mejor cmo te aconsejamos realizar el Ejercicio Exportar un objeto
como mapa de bits.
Al Exportar como hemos visto en el punto anterior, podemos "sacar" una parte de
nuestra pelcula como un grfico (un smbolo, un fotograma...).
Pero si lo que tenemos ya es una pelcula completa, y queremos generar una imagen a
partir de ella, lo haremos publicndola. Al publicar, generamos un archivo partiendo de la
pelcula creada.
Lo habitual, y que veremos ms adelante, es publicar la pelcula como un archivo Flash
(swf). Pero tambin podemos hacerlo como imgenes.
Para ello, tenemos que acceder a la Configuracin de publicacin, en el
men Archivo.
Cuando lo tengamos, basta con pulsar el botn Publicar. En la misma carpeta donde
est el archivo Flash (.fla) se crearan las imgenes.
Entre las opciones concretas del GIF, hay dos que afectan a la animacin:
Entre Reproducir
indefinidamente en
bucle,
o Repetir un
nmero
determinado de veces.
clip, el cual puede estar compuesto por muchos frames, lo que nos permitir tener una
mejor visin de cmo se desarrolla nuestra animacin, y una lnea de tiempo ms clara y
"limpia"
Los Clips son una de las herramientas que dan mayor potencia a Flash CS5,
permitindonos crear pelculas de gran complejidad y multiplicar los efectos visuales, ya
que se pueden crear mltiples movimientos independientes entre s y crear conexiones
entre los diferentes Clips de un documento.
Todas aquellas cosas que no podamos hacer con un smbolo de tipo Grfico, lo
podemos hacer con un Clip, adems de poder realizar tambin todo aquello que nos
permita dicho smbolo. Por esto, normalmente se utilizan los clips para cualquier tipo de
animacin debido a su gran flexibilidad, dejando los grficos slo para imgenes estticas.
Como hicimos con los grficos, vamos a ver como la lnea de tiempo de un clip no est
ligada a la lnea de tiempo del documento que lo contiene y, a la vez, veremos la
diferencia entre los clips y los smbolos Grficos, que supone una de las razones de la
mayor utilizacin de los primeros en lo que se refiere a la creacin de animaciones.
Para ello abriremos una nueva pelcula Flash (Archivo Nuevo, archivo ActionScript
3). Despus importaremos una imagen cualquiera o bien crearemos una. La convertimos
en Smbolo (botn derecho, Convertir en smbolo...) y seleccionamos en Tipo "Clip de
Pelcula"
Arrastramos al escenario (si no est ya all) nuestro clip de pelcula.
Ahora tenemos nuestro Clip, insertado en nuestro nuevo documento Flash. Es decir,
tenemos dos pelculas, cada una con su lnea de tiempo.
Ahora veamos que son independientes, siguiendo un proceso similar al que utilizamos
con los smbolos de tipo Grfico.
Observa la lnea de tiempo de la pelcula principal y comprueba que slo tiene un
fotograma.
Como vemos, la duracin del clip que hemos insertado es mucho mayor que la
pelcula nueva que lo contiene. Si el smbolo fuera un grfico ya hemos visto que al
reproducir la pelcula no ocurrira nada, porque slo se reproducira el primer fotograma de
su lnea de tiempo. En cambio, al tratarse de un clip, comienza a reproducirse al pasar por
el primer fotograma, y como la liena de tiempo es independiente, sigue reproducindose
aunque la lnea de tiempo principal haya acabado.
Por esto, es interesante aprender cmo crear un smbolo, en este caso un clip, de la
nada para despus modificarlo.
Para insertar un clip vaco haz clic en Insertar Nuevo smbolo y se abrir el cuadro
de dilogo de Crear un nuevo smbolo.
All debers darle un Nombre para identificarlo ms tarde en la Biblioteca y
seleccionar la opcin Clip de Pelcula en el desplegable Tipo.
A partir de este momento tendremos un nuevo clip (vaco) al cual podremos acceder
desde nuestra Biblioteca (men Ventana Biblioteca), si hacemos clic derecho sobre
l y seleccionamos Edicin, podremos editarlo y trabajar con l.
Como para todos los smbolos los Clips se almacenan en la biblioteca del documento
cuando son creados. Esto es muy importante en muchos casos ya que habitualmente los
clips son muy reutilizables. Para importar clips de otra pelcula debemos abrir primero la
biblioteca en la que est contenido.
Hemos visto en el tema de Smbolos, tenemos dos tipos de bibliotecas: las que estn
asociadas a documentos u otras pelculas y las que nos proporciona Flash CS5. Pues
bien, no slo podemos utilizar smbolos del mismo documento en el que estamos sino que
podemos importarlos de otros documentos de nuestro disco duro, lo que, en el caso que
nos ocupa, puede resultar de gran utilidad. Obviamente la exportacin mediante biblioteca
se hace automticamente ya que Flash deja los objetos creados en la biblioteca para que
puedan ser reutilizados.
Para importar un Clip de un archivo del disco duro debemos ir al
men Archivo Importar Abrir biblioteca externa..., seleccionar el Archivo Flash
(.fla) del que queremos importar sus smbolos de biblioteca y pulsar Abrir.
Existe otra forma mucho ms cmoda: si tenemos dos documentos abiertos, podemos
arrastrar los elementos directamente de un escenario a otro.
11.1. Qu es un botn?
Los smbolos de tipo Botn son los que aportan la mayor parte de la interactividad de
las pelculas Flash con aquel que las est visualizando. Un botn, en Flash, es igual que
un botn de cualquier entorno informtico, sea web o cualquier otro.
Son elementos que se prestan a que el usuario los presione, desencadenando al
hacerlo una serie de acciones. Tambin es habitual ver cmo este tipo de elementos
reaccionan cuando se les pasa el ratn por encima o cuando estn pulsados.
La interfaz de Flash est diseada de manera especial para la creacin de botones, lo
que nos permite crear todos estos efectos de una manera muy sencilla.
Al igual que los otros smbolos de Flash CS5, los botones tienen su propia lnea de
tiempo. Esta es independiente pero, sin embargo, est formada nicamente por cuatro
fotogramas, uno para cada estado posible del botn:
Reposo. Aspecto por defecto del botn, es decir, cuando el puntero del ratn no est
situado sobre l.
De esta forma ya tenemos transformado el objeto para que se comporte como un botn.
Ahora lo completaremos internamente.
Para determinar cmo debe reaccionar el botn en funcin de las acciones del ratn, lo
editaremos haciendo clic con el botn derecho del ratn sobre nuestro nuevo botn y
seleccionando la opcin Editar.
Cuando tengamos delante la lnea de tiempo del botn (observa que tiene el aspecto
que hemos mostrado anteriormente), seleccionaremos cada uno de los frames (sobre,
reposo, presionado y zona activa) y pulsaremos F6 para crear un fotograma clave en cada
uno de ellos.
Ahora ya podemos modificar el aspecto inicial del botn para cada posicin del cursor y
marcar el rea de accin del botn (fotograma Hit) en la que simplemente podremos dejar
la misma figura que la inicial (en este caso slo es importante la forma del objeto, no los
colores u otras cosas) o bien dibujar con las herramientas de dibujos de Flash una nueva
figura, en cuya superficie "se sentir aludido" nuestro botn.
Si una vez creado el botn queremos observar sus distintos estados y todava no
hemos terminado la pelcula entera y por tanto no deseamos tener que reproducirla toda
podemos hacerlo a travs del menControl Habilitar botones simples. As podremos
interactuar con el botn hasta que desactivemos esta opcin.
O podemos usar los clips para animar elementos dle botn, como en el siguiente
ejemplo:
Incluir un Clip en un botn es muy sencillo. Tomando este ejemplo, y partiendo de que
tenemos los dos textos como clips en la biblioteca, slo tendremos que:
- Hacer doble clic sobre el botn para entrar en su modo de edicin.
- Seleccionamos el estado Sobre para modificarlo. Selecciona la instancia del texto.
Ahora tenemos dos opciones:
- Pulsa la tecla SUPRIMIR para eliminarlo.
- Desde la Biblioteca (men Ventana Biblioteca) arrastramos el clip con el nuevo
texto, para crear una instancia.
O la opcin ms prctica:
- En las propiedades de la instancia, pulsamos Intercambiar... y elegimos el nuevo
objeto de texto.
- Por ltimo, centramos el nuevo texto en el botn, si es necesario.
Ya esta listo, ahora cuando pases el ratn sobre el botn el clip de pelcula empezar a
reproducirse.
Por supuesto, en vez de cambiar el texto podemos aadir otros clips, que simulen
movimientos, reflejos, etc.
1) Incluir en cada uno de los fotogramas del botn un bitmap distinto, obteniendo un
efecto como el que se consigue con lenguajes como javascript o CSS.
2) Aprovechar las propiedades de los Grficos en Flash. Para esto, deberamos
importar primero el Bitmap y despus convertirlo a smbolo botn. Posteriormente lo
editaramos y, despus de insertar cada fotograma clave, convertiramos su contenido a
smbolo Grfico. Una vez hecho esto, variando los efectos de las instancias en Flash (Alfa,
Tinta, Brillo) podremos conseguir efectos bastante buenos.
He aqu una pequea muestra en la que slo hemos utilizado un Bitmap de tipo GIF,
sacado de la Red y lo hemos convertido en un botn grfico aplicndole un efecto Alfa
(Transparencia) al estado de reposo, lo que da la sensacin de estar apagado (tambin
podramos haber aplicado brillo). En el fotograma Sobre hemos dejado el GIF original
para que al pasar sobre el botn de la sensacin de encenderse. Finalmente le hemos
aumentado la cantidad de rojo en el fotograma Presionado para que parezca estar
incandescente.
Este panel, en el rea blanca de la derecha, nos permite escribir o editar acciones
directamente. De momento no profundizaremos en esto, y ta lo haremos en el tema
correspondiente.
Tambin encontramos la ventana Fragmentos de cdigo. Desde ella, podemos
generar breves instrucciones de cdigo para el smbolo seleccionado, lo que la mayora
de veces nos facilitar la tarea, ya que se trata de las opciones ms repetidas.
1
2
3
4
5
6
miBoton.addEventListener(MouseEvent.CLICK, accionesMiBoton);
function accionesMiBoton(event:MouseEvent):void
{
//acciones
}
Donde miBoton ser el nombre de la instancia del botn.
A esta instancia, le indicamos que queremos que reaccione al clic del ratn
(MouseEvent.CLICK), ejecutando las acciones llamadas accionesMiBoton (podemos
darle el nombre que queremos).
accionesMiBoton contiene las acciones a realizar, y podemos verlo a continuacin.
Solo habra que cambiar el texto //acciones por las acciones a realizar.
Si tenemos varios botones, a cada uno lo referiremos por su nombre de instancia que
es nico. Tambin tenemos que dar un nombre nico a accionesMiBoton para cada uno,
a no ser que queramos que realicen la misma accin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
"_blank");.
1
2
3
4
5
6
7
8
9
10
11
btnPausar.addEventListener(MouseEvent.CLICK, fl_PausarReproduccion);
function fl_PausarReproduccion(event:MouseEvent):void
{
stop();
}
btnContinuar.addEventListener(MouseEvent.CLICK, fl_ContinuarReproduccion);
function fl_ContinuarReproduccion(event:MouseEvent):void
{
play();
}
Tal cual lo hemos puesto, afectara a la pelcula principal. Si lo que queremos parar o
reproducir es un clip determinado, habra que escribirlo delante de la accin, separado por
un punto. Por ejemplomiClip.stop();.
Reconocemos que aunque ActionScript 3.0 es ms potente que la versin 2.0, puede
resultar mas liosa para usuarios sin conocimientos previos. Si quieres ver cmo seran
estos mismos ejemplos en ActionScript 2, te invitamos a echar un vistazo a esta pgina de
nuestro curso de Flash CS3.
En este videotutorial de introduccin a ActionScript 3 puedes ver cmo empezar a poner
cdigo en un botn.
ello,
simplemente
debemos
editar
nuestro
botn
seleccionar
el
Podemos ver, a la izquierda una columna con las propiedades que podemos modificar,
divididas
en Movimiento
de
Color, Filtros
Suavizados.
Junto a estas propiedades, aparece una columna con los valores que toma esa
propiedad en el momento seleccionado de la lnea de tiempo.
En la siguiente columna podemos establecer si el valor se aplica con aceleracin o no.
En la columna Fotogramas, podemos recorrer o eliminar los distintos fotogramas clave.
Tambin los controles - y + que nos permiten aadir efectos.
Y a la derecha del todo encontramos la grfica. Podemos ver que cada propiedad tiene
una grfica especfica, que indica los fotogramas en horizontal y los valores de la
propiedad en vertical. Si hacemos clic sobre una propiedad, veremos que su grfica se
expande para editarla con facilidad. En la grfica encontramos los fotogramas clave
marcados como un cuadrado negro, o verde cuando est seleccionado. Estirando de
ellos, o de la lnea de la grfica podemos alterar los valores.
En la grfica, vemos que los puntos suelen formar un vrtice. Una opcin muy
interesante es poder transformarlos en puntos suavizados (desde el men contextual del
fotograma), creando una curva Bzier, lo que formar transiciones ms suaves entre los
picos de valor. Esto no es aplicable a las propiedades X,Y, Z.
A lo largo de los siguientes temas veremos cmo utilizarlo de forma concreta, ahora
vamos a ver en un videotutorial, cmo podemos utilizar el editor de movimiento para
realizar la animacin del bote de la pelota del tema 2, utilizando una interpolacin de
movimiento, en lugar de una interpolacin clsica como se hizo en ese tema.
Vemos que la animacin va desde el fotograma 1 hasta el fotograma 30. Aparece una
flecha que no aparece en la interpolacin de movimiento y el icono que hay a la derecha
del nombre de la capa es distinto.
Por supuesto, al realizar una interpolacin clsica el fotograma inicial y final debern ser
diferentes, en caso contrario no se crear ningn tipo de animacin.
Observa en las siguientes imgenes dnde est situada la pelota en el primer
fotograma de la animacin y su posicin final en el ltimo fotograma:
por
grupos
de
fotogramas
que
se
pueden
Aqu puedes ver cmo simulamos el bote de una pelota empleando el Editor de
movimiento
opciones
ms
utilizadas
es
separar
las
letras
de
los
textos
animarlas
independientemente
Para crear esta animacin debers crear tantas capas como animaciones de lneas
vayas a crear, en el ejemplo hemos creado 4 capas. Una para el movimiento de lneas de
abajo a arriba, otra para el movimiento de arriba a abajo, otra para izquierda a derecha y
finalmente una ltima para el movimiento de derecha a izquierda.
Tambin crearemos una capa que situaremos en la posicin superior donde
colocaremos las imgenes que formarn el mensaje de bienvenida.
El funcionamiento de la animacin es claro, deberemos crear interpolaciones de
movimiento para cada una de las capas de lneas que en su posicin final emplazaremos
en su lado contrario de la pantalla, por ejemplo, las lneas situadas en un principio en la
parte inferior al final de la animacin se encontrarn en la parte superior. Realizaremos
esto con las 4 capas de lneas.
En la capa Imgenes crearemos animaciones que harn aparecer las imgenes que
forman el mensaje de bienvenida de forma secuencial, es decir, del fotograma 5 al 10 se
mostrar una imagen, del 11 al 16 otra y la ltima la mostraremos del fotograma 17 al 22.
De esta forma, habiendo creado los fotogramas claves en cada uno de los fotogramas de
inicio (5, 11 y 17), arrastraremos desde la Biblioteca (men Ventana Biblioteca) las
imgenes para colocarlas en su lugar en el fotograma. Estas imgenes se mostrarn
nicamente durante el tiempo que dure el fotograma para desaparecer ms tarde dando
paso a la otra imagen.
Consejo: Si quieres aadir un fondo debers hacerlo en una nueva capa y colocar sta
debajo de todas las existentes.
Para crear la interpolacin, una vez tengamos los fotogramas de inicio y fin de la
animacin hacemos clic derecho en alguno de los fotogramas intermedios, y
seleccionamos la opcin del men Crear interpolacin de forma.
Recuerda que podemos alterar el fotograma final todo lo que queramos.
Podemos observar cmo realizar una interpolacin por forma pulsando aqu.
Consejo: Cuando vayas a aplicar el comando Separar sobre una palabra completa
observa que primero lo que hace es separar la palabra en letras individuales. Debers
ejecutar de nuevo el comando para que estas letras se separen y creen una forma.
pulsaremos Control
Shift
H (o
bien
ir
al
Aparecer un crculo de color con una letra dentro en el centro de la figura. Su color
ser rojo mientras no sea colocado en el contorno del objeto (los extremos, si es que no
hay contorno), que es donde tiene efecto. Cuando estn colocados sobre una curva
(vector) que forma un contorno son amarillos para el objeto inicial y verdes para el final.
Dicho crculo debemos colocarlo en un punto del contorno de la figura inicial.
Automticamente aparecer un punto con la misma letra dentro en la figura final (este
punto ser el que se deba corresponder con el punto del objeto de origen) y deberemos
colocarlo en el punto que deseemos del contorno.
El primer consejo de forma est marcado con la letra "a". Si creamos ms de uno sern
marcados con las letras "b", "c", "d" ... hasta la z, que es el lmite (26 como mximo).
Visita el siguiente videotutorial para comprender mejor qu es un consejo o pista de
forma y ver un ejemplo de la creacin y usos de los consejos de forma.
Punto Final
Seguimiento
Como vemos el punto que hemos marcado en el objeto inicial se acaba
correspondiendo con con el punto que marcamos en el final, con lo que hemos
conseguido forzar la transformacin que nosotros queramos.
14.1. Introduccin
Si no te parecen suficientes las interpolaciones de forma y de movimiento, y quieres
realizar animaciones ms complejas, puedes combinar las interpolaciones de movimiento
con los efectos y transformaciones que se pueden realizar sobre los smbolos que las
componen y aplicar efectos sobre las mismas interpolaciones.
Una vez comprendidas todas las tcnicas de este tema, estaremos en disposicin de
realizar todo tipo de animaciones en Flash. Slo tendremos que poner un poco de
imaginacin porque, como hemos visto y veremos, el programa nos facilitar
enormemente el trabajo.
Con el panel de Propiedades podemos controlar los efectos y filtros, pero tambin
podemos usar el Editor de movimiento para controlar gran parte de los efectos.
Por ltimo, con el uso de la herramienta Transformacin libre tambin podemos variar
las dimensiones del objeto.
Escala: En las interpolaciones guiadas, esta casilla, al activarla, permite un
incremento/decremento progresivo del tamao del objeto inicial cuando sus dimensiones
son distintas a las del objeto que est en la posicin final de la animacin. Si la casilla est
desactivada podramos encontrarnos con una animacin como la siguiente.
En las interpolaciones de movimiento, esta opcin est activada por defecto.
Como vemos Flash hace el desplazamiento de posicin, pero el cambio de tamao se
produce bruscamente en el ltimo fotograma.
Aceleracin: Esta barra deslizante nos permite determinar la aceleracin del primer
tramo de la animacin. Podemos elegir valores entre -100 y 100. Si el valor de aceleracin
es negativo el smbolo se mover despacio primero e ir acelerando de manera
progresiva.
Si
dicho
valor
es
positivo
provocar
un
efecto
opuesto.
Podemos por ejemplo dar la impresin de que un objeto, por ejemplo un coche,
arranca, va cogiendo velocidad poco a poco (valor -100) y despus va frenando y
disminuyendo su velocidad hasta pararse.
Ninguno. Con esto le indicamos a Flash que no aplique rotacin alguna sobre el
smbolo en movimiento. Es la opcin por defecto en las interpolaciones de
movimiento.
Si se trata de una interpolacin clsica, nos presenta un submen Direccin, con una
opcin ms:
Auto. Marcando esta opcin hacemos que se produzca la rotacin en aquella direccin
que necesite menos movimientos. Si cuesta lo mismo hacerlo por un lado o por el otro, es
decir, cuando la imagen inicial y final est en la misma posicin (en cuanto a rotacin se
refiere),
el
hecho
de
activar
esta
opcin
no
tendr
ningn
efecto.
Esta opcin es la que est marcada por defecto en las interpolaciones clsicas y por eso
no hemos visto hasta ahora un objeto rotar en nuestras interpolaciones clsicas. Para que
hubiera tenido efecto deberamos haber rotado la ltima imagen de la interpolacin.
Ya vimos en temas pasados cmo aplicar efectos sobre instancias de smbolos y vimos
que se poda lograr efectos vistosos. No obstante, cuando los efectos muestran su
verdadera potencia es cuando el smbolo forma parte de una animacin.
Para explicar y demostrar las posibilidades de estos efectos vamos a abrir el
panel Propiedades, que nos mostrar, en el desplegable Color los posibles efectos a
aplicar si seleccionamos una instancia de un smbolo cualquiera de nuestra pelcula.
Podemos aplicar los efectos sobre cualquier smbolo de cualquier fotograma de la
animacin, tanto sobre el fotograma inicial o el final como en los intermedios. En este
ltimo caso, si se trata de una interpolacin clsica, deberemos convertir a fotograma
clave aquel que contenga la instancia y despus aplicar el efecto. El efecto se ir
aplicando de forma gradual. De hecho, es frecuente utilizar interpolaciones clsicas
nicamente para aplicar efectos.
Para entender bien lo que sigue, es necesario controlar la aplicacin de efectos sobre
instancias. Esto lo vimos en el Tema 9 y por eso omitiremos detalles sobre cmo aplicar
efectos concretos sobre smbolos.
brillo, y en la del medio le hemos dado un valor ms alto o ms bajo segn fuera el
smbolo de abajo o el de arriba.
Como los movimientos de las luces son distintos e independientes los hemos colocado
en distintas capas.
Para la luz superior los valores de brillo fueron: 0 para el primer fot. clave, -46 para el
central y 0 para el del medio.
Y en la luz inferior al contrario: -46 para el primer fot. clave, 0 para el central y -46
para el del medio.
Aunque los degradados queden muy vistosos, tambin requieren ms memoria, por
lo que debemos evitar su uso excesivo, en la medida de lo posible.
CONSIDERACIONES EN LA ORGANIZACIN:
Agrupar los objetos que estn relacionados, con el comando Modificar Agrupar.
Hemos podido observar, cuando manejbamos textos, que cuando abrimos el men
de tipos de letras, las tres primeras son siempre "_sans", "_serif" y "_typewriter".
Esto no es una casualidad. Estn colocadas ah para resaltar que estas fuentes
ocupan un mnimo de memoria, por lo que se recomienda su uso.
CONSIDERACIONES EN LA ANIMACIN:
Ahora insertaremos una nueva escena (Insertar Escena). Deber ser la primera que
se ejecute. Para asegurarnos de ello accedemos a Ventana Otros Paneles Escena,
y en la ventana que aparece arrastramos la escena que acabamos de crear hasta que
est la primera. En nuestro ejemplo le hemos llamado "Preloader" y hemos supuesto que
la Escena con la pelcula se llama "Pelcula" (lgicamente). Deber quedar algo similar a
lo que muestra la imagen.
En la escena recin creada insertaremos otra capa, de manera que nos queden dos
capas a las que llamaremos, "Accin" y "Cargando".
En la capa "Cargando" crearemos una animacin sencilla. Por ejemplo, hagmosle
honor al ttulo y escribamos "Cargando ..."; puedes aplicarle la animacin que prefieras,
siempre que no sea muy compleja. En nuestro ejemplo, esta capa tiene por lo menos
dos fotogramas.
saber
cuntos
fotogramas
propiedad this.framesLoaded,
se
han
cuantos
cargado
hasta
fotogramas
ahora
hay
en
con
la
total
con this.totalFrames.
Conociendo estos datos, lo nico que tenemos que hacer es preguntar si los
fotogramas cargados igualan a los totales. Si es que s, ya podemos avanzar hasta la
siguiente escena. Y si no, podemos volver al principio de nuestro loader, lo que lo ir
repitiendo en bucle.
Para expresar esto en ActionScript, lo haramos as:
?
1
2
3
4
5
if(this.framesLoaded==this.totalFrames) {
gotoAndPlay(1, "Pelcula")
} else {
gotoAndPlay(1, "Cargador")
}
Si no entiendes exactamente el cdigo no te preocupes, lo veremos ms adelante. Lo
importante ahora es el concepto.
Por lo tanto, lo que har esta instruccin es reproducir la escena Cargador, y al final
comprobar el estado de la carga. Si se no se ha completado, vuelve al principio del
cargador, lo que har que vuelva a pasar por la instruccin. Cuando la carga est
completa, iniciamos la Pelcula.
Y esto es todo lo que hay que hacer para crear un preloader (aunque por supuesto se
puede hacer ms sofisticado), con lo que los visitantes ya no huirn de nuestra web. En
los primeros temas de ActionScript veremos cmo mostrar en el preloader el estado de la
carga.
acceder
mediante
el
de
Reproductor: Si queremos publicar nuestra pelcula para que sea vista con
versiones anteriores de Flash, debemos seleccionar aqu la versin deseada.
Plantilla: Para incrustar una pelcula Flash en un documento HTML, hay que escribir
una serie de cdigos de programa algo complejos y laboriosos de hacer a mano.
Para facilitarnos esta tarea Flash hace esto automticamente pero, puesto que cada
web es distinta y nuestras necesidades van a ser muy distintas, los cdigos tambin sern
muchos y distintos, por esto Flash incluye Plantillas, que crean este cdigo
automticamente segn el tipo de publicacin que deseemos:
En el botn Informacin que est a la derecha de la pestaa "Plantilla" se nos muestra
informacin muy til sobre cada tipo de plantilla. Estas son las plantillas ms comunes:
de la pelcula:
Pausa al Comienzo: Permite que sea el usuario quien haga que se inicie la
reproduccin, que inicialmente aparecer detenida.
Opaco sin Ventanas: Hace que los objetos situados en capas situadas detrs de la
pelcula no se vean (en pginas DHTML).
Transparente sin Ventanas: Es el opuesto al anterior. Permite que los objetos
situados detrs se vean.
Alineacin HTML: Posicin relativa de la pelcula dentro de la pgina web HTML.
decirle a Flash cmo distribuir la pelcula en el rectngulo que hemos decidido que la
contenga:
Sin Borde: Recorta (en caso de que la pelcula sea ms grande que el rectngulo)
todo lo que sobre con el fin de mantener las proporciones.
Ajuste Exacto: Distorsiona las proporciones si es necesario para conseguir que la
pelcula ocupe el rectngulo completo.
Alineacin Flash: Se hace necesario alinear la pelcula cuando esta no tiene las
mismas dimensiones que el rectngulo definido. Las opciones son:
Aqu podemos ver un ejemplo de publicacin de una pelcula Flash para la Web.
Adems, Flash crear el cdigo JavasScript que detecte la versin de Flash y otras
acciones.
De todas formas, lo ms habitual es utilizar un editor web, como Dreamweaver para
crear la pgina web, y desde ah insertar el archivo SWF, por lo que ser el propio editor el
que se encargue de generar este cdigo.
16.1. Qu es el ActionScript?
El ActionScript es el lenguaje de programacin que ha utilizado Flash desde sus
comienzos, y que por supuesto, emplea Flash CS5. A grandes rasgos, podemos decir que
el ActionScript nos permitir realizar con Flash CS5 todo lo que nos propongamos, ya que
nos da el control absoluto de todo lo que rodea a una pelcula Flash. Absolutamente de
todo.
Sin embargo, en estos temas slo vamos a ver una pequea introduccin
a ActionScript 3 que servir para sentar las bases que permitirn empezar a trabajar con
ActionScript. Ensear a programar con ActionScript requerira otro curso completo.
Profundizar en el conocimiento de este lenguaje queda por cuenta del lector.
Recomendamos seguir la estupenda Ayuda incluida en Flash CS5.
Todo lo referente a este curso hace referencia a la versin 3 de ActionScript. Si
buscas informacin sobre ActionScript 2.0, te recomendamos el curso de Flash CS3, en el
que resolvemos los mismos ejemplos, pero con AS 2.0.
Caractersticas generales
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
aplicacin de fragmentos de cdigo ActionScript a los objetos existentes en nuestras
pelculas nos permiten alcanzar nuestros objetivos.
ActionScript 3 es un lenguaje de programacin 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 versin se acerca ms. As, la versin 3.0 utilizada en Flash CS5 es
mucho ms potente y mucho ms "orientada a objetos" que su anterior versin 2.0.
La sintaxis ActionScript presenta muchsimos parecidos con el Javascript o PHP; si
estamos familiarizados con estos lenguajes, la sintaxis y el estilo de ActionScript nos
resultarn muy familiares. Las diferencias entre JavaScript y ActionScript las
podemos encontrar en la ayuda que acompaa al Flash CS5.
En la mayor parte de las ocasiones, ser necesario "programar". Flash CS5 pone a
nuestra disposicin una biblioteca de funciones, clases y mtodos (de momento
entenderemos esto como "cdigo ActionScript que realiza una funcin determinada")
ya implementadas que realizan lo que buscamos, bastar con colocarlas en el lugar
adecuado.
Vamos a ver muchas de estas funciones en este curso, pero antes recomendamos
tener
claros
ciertos
conceptos
relacionados
con
la
programacin.
.
Para
ello,
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 PanelAcciones puede hacer referencia a Fotogramas u objetos,
de modo que el cdigo ActionScript introducido afectar tan slo 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
seleccionamos los distintos elementos desde listas. Puede resultar til al principio, cuando
an no estamos familiarizados, pero nos limita mucho al escribir.
Cuando ya tenemos cierta soltura nos encontraremos ms cmodos con el Asistente
de script desactivado, lo que nos permite escribir directamente el cdigo. Este ltimo
modo nos dar ms libertad y agilidad si sabemos qu hacer, pero tambin es ms fcil
que cometamos errores.
En la parte superior encontramos herramientas que nos ayudarn. Veamos las ms
tiles:
Aunque la sintaxis sea correcta, puede que al probar nuestra pelcula se sigan
produciendo errores (errores de compilacin). Por ejemplo porque accedemos a una
propiedad de un objeto que no existe, o nos hemos equivocado al escribir el nombre de
una variable. Estos errores tambin nos aparecern en el panel Errores de compilador.
En este caso, fjate en el nmero de lnea del error, ya que al hacer doble clic, a veces no
va al lugar correcto si el cdigo tiene comentarios.
Este panel nos resultar muy til, ya que incluye las funciones bsicas. Por ejemplo, los
eventos
de
botones
siempre
se
escriben
de
la
misma
forma.
Desde
la
seccin Controladores de eventos del panel, podemos introducir este cdigo, y slo
modificar la parte necesaria.
Pero adems accediendo a sus opciones encontramos opciones muy interesantes:
Descripcin
Ejemplo
Suma
5 + 5 = 10
Resta
5-5=0
Multiplicacin
5 * 5 = 25
Divisin
5/5=1
Resto o Mdulo
10%8 = 2
++
--
Operadores de Asignacin
Descripcin
Ejemplo
variable vale 3;
variable = 5;
variable vale 5;
+=
variable vale 3;
variable += 5;
variable vale 8;
-=
variable vale 3;
variable -= 5;
variable vale -2;
*=
variable vale 3;
variable *= 5;
variable vale 15;
/=
Operadores de Comparacin
Empleados en expresiones condicionales, devuelven un valor lgico, verdadero (TRUE
o 1) si la comparacin es cierta, o falso (FALSE o 0) si no lo es.
Operador
Descripcin
Ejemplo
>
Mayor que
6 > 5 da verdadero.
<
Menor que
6 < 5 da falso.
>=
6 >= 5 da verdadero.
<=
6 >= 6 da verdadero.
==
Igual
!=
Distinto
Operadores lgicos.
Evalan valores lgicos. Normalmente se emplean para comparar dos expresiones con
operadores relacionales, y devuelve verdadero o falso.
Operador
Descripcin
Ejemplo
&&
||
Esta posibilidad de comprobar si una expresin es igual a otra, nos ser muy til para
comprobar muchas cosas durante nuestra pelcula y en funcin de ellas, hacer unas cosas
u otras.
Pondremos un ejemplo; imaginemos que le pedimos a un usuario que introduzca su
edad
en
un
campo
de
texto
de
nuestra
pelcula
flash.
A ese
campo
le
1
2
3
4
5
if (edad_usuario<18) {
dar_mensaje_1();
} else {
dar_mensaje_2();
}
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.
El significado de 'if' y 'else' lo veremos ms adelante, de modo que no nos
preocupemos por no entender perfectamente el cdigo escrito arriba. Tambin faltara,
lgicamente, crear las funciones "dar_mensaje_1" y "dar_mensaje_2".
Orden de precedencia
Cuando en una expresin se combinan varios operadores, el orden en que se ejecutan
puede variar el resultado de la expresin, por eso es muy importante saber en qu orden
se ejecutarn. El orden no es aleatorio sino que sigue unas reglas de precedencia al igual
que en una operacin matemtica.
Primero se evalan los operadores de dentro de los parntesis.
Cuando dos operadores estn al mismo nivel, unos operadores tienen preferencia con
respecto a otros, y estos se calculan primero. En el caso de que tengan la misma
preferencia, se calcularn de izquierda a derecha.
En la siguiente tabla, vemos el orden de precedencia, de mayor a menor, se ejecutan
primero los de mayor orden.
Orden de precedencia
Negacin (!) / Incremento (++) / Decremento (--)
Multiplicacin (*) / Divisin (/) / Resto (%)
Suma (+) / Resta (-)
Relacionales mayor - menor (>, <, >=, <=)
Igualdad (==) / Desigualdad (!=)
And lgico (&&)
Or lgico (||)
Asignacin (=, +=, -=...)
Otros Elementos del lenguaje
( ) : Parntesis. Sirven, como es de esperar, para agrupar trminos y dar preferencias
en las operaciones (al igual que en matemticas). Tambin se usa, como ya vimos, para
pasar parmetros a funciones o acciones.
" " : Comillas. En ActionScript, todo lo que va entre comillas, pasa a considerarse una
cadena de caracteres. As por ejemplo, mientras que x representa una variable con un
valor determinado, si escribimos "x", estamos escribiendo en realidad el carcter o la letra
"x". Por tanto, podremos aadirlo a una palabra, compararlo con otras letras, escribirlo por
pantalla etc.. pero ya no ser una variable.
//: Comentario de lnea. Indica que el texto a partir de ah, y en esa lnea, es un
comentario, y no se ejecutar como cdigo.
/* ....... */: Comentario de bloque. Cualquier texto de una o ms lneas encerrado entre
estos caracteres es un comentario, y no se ejecutar como cdigo.
unos de otros. As, son objetos, por ejemplo, un botn, un clip de pelcula, un grfico o un
sonido... es decir, que prcticamente todo es un objeto en Flash CS5.
Vamos a ver los objetos ms usados en Flash y una breve descripcin de cada uno de
ellos. Como ya se ha explicado en el tema bsico, cada objeto tiene una serie
de Propiedades (que
veremos
despus),
que
dan
otras partes del Sistema Operativo interacten con nuestra pelcula Flash. Por tanto,
es muy potente.
Objeto "Math" (Matemticas)
Es uno de los mltiples objetos "abstractos" de Flash, ni es visual, ni parece que
corresponda a nada existente en el sistema (como el objeto "Mouse"). Su funcin es
muy importante, pues nos permite usar frmulas matemticas de modo muy sencillo.
En el tema siguiente veremos algn ejemplo de su uso.
Objeto "String" (Cadena)
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 mtodos que Flash implementa sobre ellas:
Seleccionar subcadenas de letras, buscar una determinada letra en una palabra,
convertir la palabra a letras maysculas y un largo etc...
Objeto "Loader" (Cargador) y Objeto "URLLoader" (Cargador de informacin)
Los objetos Loader nos permitirn cargar archivos para mostrarlos (imgenes,
archivos swf, etc...) en nuestra pelcula, mientras que los objetos URLLoader nos
permitirn cargar informacin de archivos (archivos de texto, XML, pginas web...).
Estas acciones se emplean, como su nombre indica, para controlar el flujo de nuestra
pelcula, esto es, para indicar a Flash en todo momento qu fotograma tiene que mostrar,
cundo tiene que parar, dnde seguir etc...
Estas acciones son mtodos de la clase MovieClip. Podemos aplicarlas a cualquier
MovieClip
de
nuestra
pelcula,
siguiendo
el
siguiente
Ejemplo:
fscommand("fullscreen", "true"); -> Activa la pantalla completa.
navigateToURL() : Esta accin se emplea para abrir el navegador web e ir a la pgina
indicada.
Sintaxis:
navigateToURL(url , [ventana]);
url: Direccin web a la que queremos acceder (se abrir una ventana).
Este parmetro es un objeto del tipo URLRequest. Si queremos utilizar
una direccin como cadena de texto, podemos hacerlo escribiendo new
URLRequest("http://www.direccion.coms").
Ejemplo:
navigateToURL(new
URLRequest("http://www.aulaclic.es"),
"_blank"); --> Abre la web de aulaClic en una ventana nueva.
load(): Este mtodo nos permite cargar nuevas pelculas Flash o imgenes en nuestra
pelcula de forma dinmica (la pelcula se cargar cuando se lo indiquemos, y no antes),
en un objeto de la clase Loader, o cargar informacin en un objeto URLLoader. Para
utilizarlo, primero tenemos que crear un objeto de este tipo.
Sintaxis:
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
mtodo
load()
para
que
cargue
el
archivo
indicado.
Nota: Cargamos el archivo en nuestra pelcula, pero no lo mostramos. Para verlo,
tenemos que aadir el cargador a la lista de visualizacin, como ya veremos, por ejemplo
conaddChild(cargadorPeli);.
Acciones - Condiciones
Estas acciones sirven para controlar la lgica de la pelcula. Se puede decir que nos
permiten "hablar" con Flash para indicarle lo que debe hacer ante distintas situaciones.
Por ejemplo, ahora que conocemos algunas Acciones, Cmo indicarle a Flash que "si la
variable x = 3, entonces vaya al fotograma 5, y si no, vaya al fotograma 10"?. Sabemos
comparar, sabemos ir a los fotogramas, pero no sabemos decirle a Flash "Si pasa esto,
haz una cosa, y si no, haz la otra...". Veamos cmo decrselo:
if ... else: Si partimos de que la traduccin literal de if es "si..." y la de else es "si no ...",
nos encontramos de repente con todas las herramientas para decirle a Flash: "si (pasa
una
condicin)
{haz
esto}
si
no
{haz
lo
otro}"
Veamos antes que nada su sintaxis para comprenderlo mejor:
Sintaxis:
if
(condicin)
{sentencias_si_no; }
{sentencia_si_se_cumple;
else
if: Indica que accin que viene a continuacin entre parntesis es una condicin.
condicion: Indica una condicin que debe cumplirse, es decir, debe tener como
resultado true, o lo que es lo mismo, verdadero, o lo que es lo mismo, 1. De ah la
importancia de los operadores de comparacin y el valor que devuelven. La
condicin siempre debe de ir entre parntesis.
sentencia_si_se_cumple;: Conjunto de acciones que sucedern si la condicin se
evala como verdadera. Estas sentencias deben de ir entre llaves. Podemos poner
el bloque de cdigo que queramos: varias lneas, objetos, otros if...
else: Especifica la alternativa si condicin se evala a falsa. Es optativo. Si no
existe, y no se cumple la condicin, no se har nada, pues no lo hemos especificado.
Ejemplo:
if (x == 2) {miClip.gotoAndPlay(6); } --> Si la variable x vale 2, entonces saltamos al
fotograma 6 de miClip, si no, no hacemos nada.
if (y > 7) { stop(); } else {gotoAndPlay(1); } --> si la variable y es mayor que 7, paramos
la pelcula, sino, volvemos al fotograma 1.
Acciones - Navegador / Red
Estas acciones tienen diversas funciones, describimos las ms importantes:
fscommand: Esta accin, es capaz de ejecutar ciertos comandos muy potentes. Lo ms
cmodo es pasar a Asistente de Script (sino estbamos ya) e insertarla, nos aparecer
una pestaa con los posibles comandos que admite. Sirve para interactuar con la
aplicacin que reproduce la pelcula, por ejemplo Flash Player o el navegador web, como
IE o Firefox. Veamos esos comandos:
Ejemplo:
fscommand("fullscreen", "true"); -> Activa la pantalla completa.
navigateToURL() : Esta accin se emplea para abrir el navegador web e ir a la pgina
indicada.
Sintaxis:
navigateToURL(url , [ventana]);
url: Direccin web a la que queremos acceder (se abrir una ventana).
Este parmetro es un objeto del tipo URLRequest. Si queremos utilizar
una direccin como cadena de texto, podemos hacerlo escribiendo new
URLRequest("http://www.direccion.coms").
Ejemplo:
navigateToURL(new
URLRequest("http://www.aulaclic.es"),
"_blank"); --> Abre la web de aulaClic en una ventana nueva.
load(): Este mtodo nos permite cargar nuevas pelculas Flash o imgenes en nuestra
pelcula de forma dinmica (la pelcula se cargar cuando se lo indiquemos, y no antes),
en un objeto de la clase Loader, o cargar informacin en un objeto URLLoader. Para
utilizarlo, primero tenemos que crear un objeto de este tipo.
Sintaxis:
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
mtodo
load()
para
que
cargue
el
archivo
indicado.
Nota: Cargamos el archivo en nuestra pelcula, pero no lo mostramos. Para verlo,
tenemos que aadir el cargador a la lista de visualizacin, como ya veremos, por ejemplo
conaddChild(cargadorPeli);.
Acciones - Condiciones
Estas acciones sirven para controlar la lgica de la pelcula. Se puede decir que nos
permiten "hablar" con Flash para indicarle lo que debe hacer ante distintas situaciones.
Por ejemplo, ahora que conocemos algunas Acciones, Cmo indicarle a Flash que "si la
variable x = 3, entonces vaya al fotograma 5, y si no, vaya al fotograma 10"?. Sabemos
comparar, sabemos ir a los fotogramas, pero no sabemos decirle a Flash "Si pasa esto,
haz una cosa, y si no, haz la otra...". Veamos cmo decrselo:
if ... else: Si partimos de que la traduccin literal de if es "si..." y la de else es "si no ...",
nos encontramos de repente con todas las herramientas para decirle a Flash: "si (pasa
una
condicin)
{haz
esto}
si
no
{haz
lo
otro}"
Veamos antes que nada su sintaxis para comprenderlo mejor:
Sintaxis:
if
(condicin)
{sentencias_si_no; }
{sentencia_si_se_cumple;
else
if: Indica que accin que viene a continuacin entre parntesis es una condicin.
condicion: Indica una condicin que debe cumplirse, es decir, debe tener como
resultado true, o lo que es lo mismo, verdadero, o lo que es lo mismo, 1. De ah la
importancia de los operadores de comparacin y el valor que devuelven. La
condicin siempre debe de ir entre parntesis.
sentencia_si_se_cumple;: Conjunto de acciones que sucedern si la condicin se
evala como verdadera. Estas sentencias deben de ir entre llaves. Podemos poner
el bloque de cdigo que queramos: varias lneas, objetos, otros if...
else: Especifica la alternativa si condicin se evala a falsa. Es optativo. Si no
existe, y no se cumple la condicin, no se har nada, pues no lo hemos especificado.
sentencias_si_no; Conjunto de acciones que sucedern si la condicin se evala
como falsa. Deben incluirse entre llaves.
Ejemplo:
if (x == 2) {miClip.gotoAndPlay(6); } --> Si la variable x vale 2, entonces saltamos al
fotograma 6 de miClip, si no, no hacemos nada.
if (y > 7) { stop(); } else {gotoAndPlay(1); } --> si la variable y es mayor que 7, paramos
la pelcula, sino, volvemos al fotograma 1.
Propiedades de MovieClip.
framesloaded
Slo lectura. Son los fotogramas de un clip de pelcula o de la pelcula principal que
el sistema lleva cargados en memoria. (Si se usa sin nombre de objeto delante
obtenemos los fotogramas cargados de la pelcula principal). Muy til para crear
cargadores o "preloaders".
totalframes
Slo lectura. Devuelve la cantidad de fotogramas que contiene el clip de pelcula al
que hace referencia. Si se emplea sin ningn nombre delante, nos devuelve la
cantidad de fotogramas de la pelcula Flash actual. Tambin usado en la creacin de
cargadores (en el tema siguiente veremos cmo utilizar estas propiedades).
currentFrame
Slo lectura. Indica el nmero de frame en el que se encuentra la cabeza de
reproduccin del MovieClip.
Remplazamos
el
texto <nombre
de
instancia> por
el
nombre.
Por
ejemplo boton_reducir para el botn y rectangulo para el clip. Los objetos estarn listos
para ser tratados.
Vamos al panel de acciones, y escribimos el siguiente cdigo, para que al pulsar el
botn, el clip del rectngulo reduzca su tamao a la mitad.
?
1
2
3
4
5
6
7
boton_reducir.addEventListener(MouseEvent.CLICK, encogerRectangulo);
function encogerRectangulo(event):void
{
rectangulo.height = rectangulo.height / 2;
rectangulo.width = rectangulo.width / 2;
}
Como veremos ms adelante, indicamos al botn que cuando hagan clic, llame a la
funcin encogerRectangulo. Esta funcin, 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 tamao a la
mitad.
1
2
3
4
5
6
7
8
import flash.events.MouseEvent;
miBoton.addEventListener(MouseEvent.CLICK, funcionAlHacerClick);
function funcionAlHacerClick(event:MouseEvent):void
{
this.gotoAndPlay(15);
}
Esta accin provoca que al hacer clic en el botn vayamos directamente al Fotograma
nmero 15 de la pelcula.
Utiliza la sentencia import para especificar el nombre completo de la clase, de modo
que el compilador de ActionScript sepa dnde encontrarlo. En este momento queremos
importar la clase MouseEvent, le especificamos la clase de flash que debe importar:
import flash.events.MouseEvent;
La segunda lnea indicamos qu tiene que suceder (el evento) para que se realice la
funcin que indicamos "funcionAlHacerClick".
En la tercera lnea ya indicamos nuestra funcin y dentro escribimos lo que queremos
que pase al hacer clic en el botn.
1
2
3
4
5
6
7
8
import flash.events.*;
import flash.net.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
var miURL:URLRequest = new URLRequest("http://www.aulaclic.es");
function miFuncion(event:MouseEvent):void
{
navigateToURL(miURL, "_blank");
}
Esta accin provoca que al pulsar un botn se abra una nueva pgina web en nuestro
navegador por defecto y nos muestre la pgina www.aulaclic.es
La primera lnea, la segunda y la tercera tienen la misma funcin que en el caso anterior
La cuarta lnea creamos una variable nueva para pasarle la web a la cual queremos que
nos lleve al pulsar el botn.
?
1
2
3
4
5
6
import flash.events.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
function miFuncion(event:MouseEvent):void
{
r1.width=350;
}
Esta accin provoca que al pulsar un botn se modifiquen las propiedades del objeto
cuyo nombre de instancia aparece delante de la propiedad.
La primera lnea y la segunda tienen la misma funcin que en el caso anterior
En la tercera lnea definimos la funcin y podemos ver la propiedad .width (anchura),
vemos que hay un operador de asignacin ( = ), luego deducimos que vamos a asignar
una anchura determinada a un objeto. Qu anchura? Pues 350, que es la cantidad que
aparece en la parte derecha de la expresin. Y a qu objeto? Al que va delante del ".", o
lo que es lo mismo, al afectado por la propiedad.
Por tanto, al pulsar el botn vamos a modificar la anchura del objeto r1, que pasar a
ser de 350 px.
Los Clips de Pelcula (objeto MovieClip) son pelculas dentro de pelculas. Pueden tener
cdigo AS dentro de s mismos, aunque suele ser ms comn que algn otro cdigo
externo (situado en fotogramas) les haga referencia. Para que el cdigo que contengan
los clips de pelcula sea vlido, stos deben tener algn evento de clip asociado (Load,
KeyDown etc) que determine cundo se ejecutar este cdigo (al cargarse el clip, al
pulsar alguna tecla ...)
?
1
2
3
4
5
6
import flash.events.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
function miFuncion(event:MouseEvent):void
{
r1.gotoAndPlay(2);
}
1
2
3
4
5
//Cdigo 1
var req:URLRequest = new URLRequest("sonido.mp3");
var musica:Sound = new Sound(req);
var canal:SoundChannel = new SoundChannel();
sonido.mp3 es el nombre del archivo de sonido que se va a cargar, seria aqu donde
deberamos sustituir ste y poner el nombre del sonido que queramos nosotros, y deber
1
2
3
// Cdigo 2
canal.stop();
Este cdigo detiene el sonido que se est reproduciendo por el canal de sonido canal.
1
2
3
4
// Cdigo 3
canal.stop();
canal = musica.play(0,99);
La primera lnea detiene el sonido, como hemos visto antes.
La segunda, provoca que el sonido musica comience a reproducirse (play) a partir de
su posicin inicial (el 0 indica los segundos transcurridos desde el comienzo) y lo haga 99
veces (esto se llama loop o bucle). Si ponemos slo musica.play();, se reproducir
desde el principio y slo una vez, como vemos en el siguiente cdigo:
1
2
3
4
//
Cdigo 4
canal.stop();
canal = musica.play();
Ahora que ya sabemos controlar los sonidos mediante ActionScript, veamos un ejemplo
que rene todo lo visto anteriormente.
En este ejemplo:
- Tenemos un nico fotograma con 3 botones. En este fotograma tenemos insertado
el Cdigo 1.
- Los 3 botones tienen distintas funcionalidades:
- En el botn rojo, est insertado el Cdigo 2
- En el botn azul, est insertado el Cdigo 3
- En el botn verde, est insertado el Cdigo 4
x = Math.round(4.3);
El Mtodo "round" REDONDEA el parmetro introducido eliminando la parte decimal del
mismo. Aunque nuestra configuracin utilice la coma para separar los decimales, en Flash
debemos utilizar el punto.
En el ejemplo, x pasara a valer 4.
x = Math.max(5 , 2);
El Mtodo "max" obtiene el valor mximo entre 2 nmeros.
En el ejemplo, x pasara a valer 5.
El objeto Math es muy til y nos ahorra mucho trabajo, pues hay multitud de
operaciones que responden a alguno de sus mtodos y que no tenemos porqu
implementar. Basta buscarlos en el manual y usarlos.
se atasca, aparecen partes incompletas etc...). Vamos a suponer pues, que tenemos una
pelcula con 150 fotogramas. Los 3 primeros los reservaremos para crear nuestro
cargador. En el Fotograma 4 comienza la pelcula.
Nota: Junto a cada lnea hemos insertado comentarios (texto entre los smbolos /* y */)
que son lneas que Flash reconoce como tales y que no tiene en cuenta a la hora de
ejecutar el cdigo (es como si no existieran). Se usan para clarificar y explicar el cdigo
que escribamos y para eso lo usaremos a continuacin. Les cambiaremos el color para
aclarar que es un comentario. Evidentemente no son necesarios en el cdigo que
finalmente insertemos en nuestra pelcula.
Este es el cdigo que insertaremos:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* FOTOGRAMA 1 */
var bytes_totales:Number;
var bytes_cargados:Number;
var porcentaje:Number;
bytes_totales = this.getBytesTotal();
//----------------------------------------------------------------------------/* FOTOGRAMA 2 */
bytes_cargados = this.getBytesLoaded();
/* Hallamos los bytes que llevamos carg
hasta el momento. Este valor lo asig
variable bytes_cargados */
if (bytes_cargados >= bytes_totales) {
/* Esta es la lgica del cargador. Si l
los mismos bytes o ms de los que oc
la siguiente lnea */
this.gotoAndPlay(4);
/* Si hemos llegado hasta aqu es porque tod
cargada en memoria (bytes_cargados >
comenzar a ver la pelcula. Ejecutam
llevar hasta al fotograma donde co
} else {
/* Si aun no hemos cargado toda la pelc
porcentaje = ((bytes_cargados/bytes_totales)*100);/* Averiguamos el porcentaj
realizando la divisin en
y los bytes_totales y mul
txt_salida.text = Math.floor(porcentaje)+"%";
/* Mostramos en el texto "tx
que llevamos junto al smb
porcentaje de pelcula que
}
//----------------------------------------------------------------------------/* FOTOGRAMA 3 */
this.gotoAndPlay(2);
/* Si llegamos al fotograma 3 es porque no est cargada to
estaramos ya en el fotograma 4. Como an no est cargada, volvem
para ver si ya lo est (mediante gotoAndPlay(2);). Esto lo haremo
falta para dar tiempo al ordenador del usuario a ir cargando en m
35
36
Resumiendo:
Fotograma 1: En el Fotograma 1 se calculan los bytes totales que ocupa la pelcula.
Despus pasamos al Fotograma 2.
Fotograma 2: Cada vez que accedamos al Fotograma 2, nuestro cdigo ActionScript
averigua los bytes que llevamos cargados en memoria y los compara con los totales (que
se hallaron en el Fotograma 1 y no vuelven a averiguarse, pues no varan). Si ya est toda
la pelcula cargada, vamos al fotograma 4 y comenzamos a reproducir la pelcula, sino,
pasamos al fotograma 3
Fotograma 3: El Fotograma 3 volver a mandar la cabeza lectora al fotograma 2.
Haciendo este ciclo, damos tiempo al ordenador a ir cargando poco a poco la pelcula,
hasta que llegue un momento que est toda cargada y pasemos al Fotograma 4. El
clculo del porcentaje es un "adorno" que nos permitimos, pues con un poco ms de
esfuerzo averiguamos cunta pelcula llevamos cargada y la mostramos por pantalla de
un modo elegante (en porcentaje) haciendo la espera del usuario menos aburrida.
Fotograma 4: Aqu comienza la pelcula... (Ya no se volver nunca a ninguno de los
fotogramas anteriores).
Abajo mostramos el resultado. La pelcula se comenzar a cargar al pulsar el botn. El
cdigo insertado es el que se muestra arriba, no hay NADA MS. Tan slo se han aadido
unos textos y unas imgenes para aumentar el tamao de la pelcula, de lo contrario la
carga sera demasiado rpida y no llegara a verse.
Tambin se ha insertado el texto dinmico que muestra el porcentaje.
Si el cargador no llega a verse, lo ms probable sea que ya est cargada en la memoria
cach del ordenador o que estis viendo este curso desde el DVD o desde vuestro propio
Disco Duro, donde la velocidad de descarga es tan rpida que sera necesaria una
pelcula de varios MBytes para que hiciera falta un cargador. Podemos encontrar otro
ejemplo de cargador en los videotutoriales del curso.
Probad el cdigo en una pelcula que coloquis en un servidor web y podris ver los
resultados sin problemas.
18.1. Introduccin
En este tema veremos los puntos ms importantes en los que te podrs apoyar para
realizar tus animaciones en Flash usando ActionScript.
Esta unidad, la de Navegacin, est especialmente orientada a la web, pues veremos
cmo crear elementos que te ayudarn ms tarde a crear tus propias presentaciones,
secciones, etc. Todo ello apoyado con animaciones y vinculadas entre s.
A lo largo del tema utilizaremos este ejemplo para ilustrar la teora de forma guiada.
Uno de los elementos que ms nos van a ayudar a la hora de aadir interactividad en el
diseo son los botones.
En el ejemplo nos hemos ayudado de los botones para crear la navegacin entre las
diferentes secciones.
As que el primer paso, despus de haber creado la interfaz de la pelcula en una capa,
ser crear e insertar los botones en una nueva capa para trabajar con mayor facilidad.
Para asignarle una accin a un botn es necesario darle un nombre de instancia.
Para ello (y como hemos visto en unidades anteriores) escribimos el nombre que
queramos (al cual nos referiremos ms tarde para llamar al botn) en el Inspector de
Propiedades, en este caso lo hemos llamado equipo.
Luego, creamos otra capa para poder insertar las acciones que necesitarn nuestros
botones, abrimos el Panel Acciones y aadiremos el cdigo que deber realizar el botn.
sta es la parte ms importante pues deberemos decidir a qu evento responder el
botn. Existen varios eventos que son capturados en Flash, nombraremos los ms
importantes
(echa
un
vistazo
la
seccin Controladores
de
evento del
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
2
3
4
5
6
function miFuncion(e:MouseEvent):void
{
//cdigo de la funcin
}
Puedes ver los todos los eventos de ratn en este avanzado
no slo afectan a botones, pueden ser capturados por cualquier objeto de visualizacin
(MovieClips, controles de formulario, imgenes, etc...).
stop();
Esto har que cuando la animacin llegue a ese punto se detenga a la espera de nueva
orden.
Nosotros hemos colocado las acciones en una capa aparte llamada Acciones para as
poder acceder ms rpido a ella. El mtodo es el mismo, solamente habr que
crear fotogramas claves en aquellos sitios en los que queramos insertar un stop().
1
2
3
4
5
6
7
8
import flash.events.MouseEvent;
encuentranos.addEventListener(MouseEvent.CLICK,botonenc);
function botonenc(event:MouseEvent):void
{
gotoAndPlay("Encuentranos");
}
Existe otra forma, muy til, para nombrar los fotogramas. Del mismo modo que
dbamos un nombre de instancia a un botn lo haremos con un fotograma.
Basta con introducir una Etiqueta de fotograma para poder remitir el cabezal a ste:
A pesar del hecho de que las escenas se trabajan como lneas de tiempo diferentes, al
crear el archivo SWF stas se alinean en orden reproducindose una detrs de otra.
Por ello, al publicar el documento los fotogramas de las escenas se numerarn respecto
a esto. Es decir, si tenemos una primera escena que va del fotograma 1 al 50, la segunda
escena comenzar en el fotograma 51.
Todo esto hace que las escenas, en algunos casos estn desaconsejadas por las
siguientes razones:
En el Panel Escena (brelo desde Ventana Otros paneles Escena) podrs ver
las escenas actuales de la pelcula.
o duplicarla con el
Como hemos comentado antes (y si no existe cdigo ActionScript que modifique esto)
las escenas se reproducen una despus de la otra en el orden en el que se encuentran en
el Panel Escena. Puedes cambiar este orden con solo arrastrar y colocar la escena en
cuestin en su lugar correspondiente.
Trabajar con una escena es muy sencillo, basta con seleccionarla en el panel y su
contenido se mostrar en el Escenario. Podrs trabajar con ella como si se tratase de una
pelcula independiente.
el
ejemplo
que
estamos
siguiendo
creamos
una
nueva
escena
1
2
3
4
5
6
7
import flash.events.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
function miFuncion(event:MouseEvent):void
{
gotoAndPlay("escena_otros", 1);
}
Fjate en cmo hemos escrito la funcin. Primero hemos sealado el clip sobre el que
queremos actuar escribiendo su nombre de instancia:
1
2
3
4
5
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
function miFuncion(event:MouseEvent):void {
miClip.gotoAndPlay(20);
}
De esta forma (y como hemos visto en temas anteriores) podemos acceder a todas las
propiedades del clip. Escribiendo esta lnea haremos que el clip se haga invisible:
1
2
3
4
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);<p></p>
function miFuncion(event:MouseEvent):void {
miClip.visible = false;
}
Para hacerlo un poco ms complicado podramos encontrarnos en el siguiente
supuesto. Imagina que tenemos un movieclip llamado clipPadre. Dentro de este clip de
pelcula tendremos ms smbolos y uno de ellos puede ser otro movieclip
llamado clipHijo.
Cmo accedemos a las propiedades y funciones de clipHijo? Muy fcil. Suponiendo
que estamos trabajando desde la pelcula principal donde tenemos insertado el clipPadre,
escribiremos lo siguiente:
As haremos que la reproduccin de clipHijo se reanude.
clipPadre.clipHijo.play();
1
2
3
4
5
6
7
8
import flash.events.*;
miBoton.addEventListener(MouseEvent.MOUSE_UP, miFuncion);
function miFuncion(event:MouseEvent):void
{
clipHijo.gotoAndPlay(20);
}
Como puedes ver esta vez no hemos mencionado a clipPadre en la lnea de cdigo.
No es necesario porque ya nos encontramos dentro de l.
Tambin
podemos
referenciarnos
elementos
superiores
utilizando
la
1
2
3
with (parent) {
this.parent.gotoAndPlay(20);
}
Donde this indica el clip donde nos encontramos y parent hace que nos coloquemos
en el nivel inmediatamente superior.
De esta forma, slo deberemos escribir la ruta de contenedores o padres hasta llegar al
objeto del cual queremos modificar o ejecutar un mtodo.
Podemos hacer que el elemento padre escuche eventos producidos dentro del hijo, con
lo que denominamos propagacin en burbuja. Puedes ver cmo en este avanzado
miClip.gotoAndStop("etiqueta");
Y saltar de fotograma a fotograma para manejar las animaciones de la forma en que
nosotros queramos.
Igual que vimos antes con los botones, los movieclips tienen manejadores de eventos
que nos permitirn ejecutar cdigo dependiendo de los eventos que se produzcan sobre
ellos.
Responden a los a todos los eventos de ratn que ya hemos visto, y cualquier evento
que comparta con el resto de objetos de visualizacin (DisplayObject). Vamos a ver los
eventos especficos del MovieClip:
Veamos el ejemplo:
Si observas tenemos dos movieclips en la pelcula, uno de ellos llamado estrella, y el
otro detalle. La lnea de tiempo de estos movieclips tendra este aspecto:
Como puedes ver tenemos una cuarta capa que se llama acciones. All colocaremos
las acciones que se asociarn a este fotograma:
?
1
2
3
4
5
estrella.addEventListener(MouseEvent.CLICK,funcion_desaparece);
function funcion_desaparece(event:MouseEvent):void {
estrella.gotoAndPlay("desaparece");
detalle.gotoAndPlay("aparece");
}
6
Este cdigo har que cuando se presione el clip estrella se desplacen los cabezales en
los clips detalle y estrella a las etiquetas de fotogramas que se indican.
Para hacer desaparecer el clip detalle incluiremos el siguiente fragmento de cdigo:
Esto har algo parecido a lo anterior, cuando se presione el clip detalle los cabezales
de ambas pelculas se desplazarn a las respectivas etiquetas de fotograma.
?
1
2
3
4
5
6
detalle.addEventListener(MouseEvent.CLICK,funcion_aparece);
function funcion_aparece(event:MouseEvent):void {
estrella.gotoAndPlay("aparece");
detalle.gotoAndPlay("desaparece");
}
bsico.
Antes de utilizar una variable, tenemos que declararla. Para declarar (crear) una
variable slo tendrs que escribir la siguiente lnea:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
En el click del clip detalle se evala de nuevo la variable. Esta vez debera estar en
false porque si el detalle est fuera es porque ya se ha hecho clic sobre la estrella y ha
pasado por el anterior bloque.
A medida que vayamos avanzando iremos usando otras variables de diferentes tipos.
Vers que su uso no difiere mucho al que hemos explicado ahora.
Antes de terminar con este tema deberamos ver algo muy importante: el mbito de las
variables.
Esto es, el sitio donde puedan utilizarse las variables.
Nota: Para explicar el mbito de las variables utilizaremos la funcin trace(variable);
que enva el contenido de la variable al Panel Salida, lo que nos permitir ver el valor que
va tomando. Puedes abrir este panel desde Ventana Salida.
Existen 2 mbitos de variables: el local y el de lnea de tiempo.
1
2
trace(miVariable);
stop();
Vers como al probar la pelcula en el Panel de Salida aparece escrito el Esta es mi
variable, que es el texto que le hemos dado.
Ten en cuenta que si declaras la variable en el fotograma 2 no estar disponible
en fotogramas anteriores, es decir en el 1.
Las variables declaradas en un mbito local sirven slo para un bloque de funcin.
Veamos este ejemplo:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Antes
de
la
funcin,
en
la
lnea
de
tiempo
definimos
dos
Por ltimo mostramos el contenido de otraVariable. Como esta haba sido definida
dentro de la funcin, es una variable local, por lo que fuera de la funcin no existe, no est
definida, por lo que muestraUNDEFINED.
Por tanto, las variables declaradas dentro de la funcin son locales, y slo existen
dentro de sa funcin. Si dentro de una funcin queremos emplear una variable definida
en la lnea de tiempo, no debemos de definir una variable local con el mismo nombre.
1
2
3
function saludar() {
trace('Hola');
}
Lo nico que hace es mostrar Hola en el panel de salida.
Para que se ejecute la funcin, debemos de llamarla en alguna parte del cdigo:
saludar();
Parmetros o argumentos
Como ves, crear funciones es bastante sencillo. Adems podemos crear funciones un
poco ms complejas envindole parmetros:
1
2
3
function saludar(nombre:String) {
trace('Hola '+nombre);
}
Observa que en el parmetro hemos indicado el tipo de dato que ser, es este caso del
tipo String.
Ahora para llamarla usaramos por ejemplo:
1
2
3
1
2
1
2
3
4
5
miBoton.addEventListener(MouseEvent.MOUSE_UP, miFuncion);
function miFuncion(e:MouseEvent):void {
gotoAndPlay(1);
}
El parmetro que recogemos es el evento. Cada evento tiene unos mtodos que
podemos emplear si definimos su tipo. En el ejemplo anterior, declaramos el
parmetro e que era del tipo MouseEvent. En las funciones activadas por eventos
siempre debemos de recoger ese parmetro, aunque si no lo pensamos usar no es
necesario especificar su tipo.
Una
propiedad
muy
til
es event.target (en
el
ejemplo
anterior
se
Esto nos permite utilizar la misma funcin para varios objetos, pero que la funcin slo
modifique propiedades del elemento que la llama en cada momento.
Devolver valores.
En vez de que la funcin realice una accin, tambin podemos utilizarla para que
devuelva valores u objetos. Por ejemplo:
?
1
2
3
function saludar(nombre:String):String {
return 'Hola '+nombre;
}
Observa que hemos indicado detrs de la funcin el tipo de valor a devolver (en este
caso devolver un String), tal como hacamos con las variables.
En muchos ejemplos habrs visto que el tipo indicado es :void. Esto no es un tipo de
datos, sino todo lo contrario. :void indica que esa funcin no devuelve ningn valor.
El valor que devuelve es lo indicado la instruccin return.
En el ejemplo anterior la funcin no realiza ninguna accin, slo devuelve un valor:
1
2
3
4
Los objetos que vemos son llamados objetos visibles o de visualizacin, y todos
pertenecen a la calse DisplayObject o a una subclase heredada de esta. Siempre
han de estar dentro de un contenedor para que se vean.
Los objetos estn agrupados dentro de un contenedor, que hace de elemento padre.
A su vez, dentro de un contenedor podemos tener otros contenedores con sus
respectivos
elementos.
Los
contenedores
pertenecen
a
la
clase DisplayObjectContainer, y aunque pueda parecer lioso, a su vez un
contenedor es un objeto de visualizacin, y se puede tratar como tal.
La lista de visualizacin es cmo estn ordenados los objetos dentro del
contenedor, y establece el orden de apilamiento de los objetos.
Los contenedores:
En nuestra pelcula podemos tener cuatro tipos de contenedores:
1
2
miContenedor.addChild(miObjeto1);
miContenedor.addChild(miObjeto2);
Ahora tenemos el contenedor con dos objetos. Pero an no se ven, porque no hemos
aadido el contenedor al elemento principal, a la escena. Vamos a hacerlo:
addChild(miContenedor);
Ahora ya vemos el contenedor. Bueno, realmente no vemos el contenedor, vemos los
elementos de visualizacin que contiene.
Nuestro contenedor tiene una lista de visualizacin con dos elementos.
Listas de visualizacin:
Los elementos aadidos a un contenedor forman su lista de visualizacin. La
posicin dentro de esta lista establece el orden de apilamiento. Es decir, los objetos con
un ndice menor se vern por debajo de los elementos con un ndice mayor.
Vamos a ver cmo accedemos y tratamos estos elementos con los mtodos y
propiedades de DisplayObjectContainer.
objeto.removeEventListener(Event.ENTER_FRAME, miFuncion);
1
2
3
4
5
6
7
8
9
10
carga.addEventListener(MouseEvent.CLICK, abrir);
function abrir (e:Event): void{
var miCargador:Loader =
new Loader();
miCargador.load(new URLRequest("mapa.swf"));
miCargador.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);
function insertMovie(evt:Event):void{
addChild(miCargador);
}
}
Loader();
miCargador.load(new URLRequest("mapa.swf"));
Una vez cargado, lo aadimos a un contenedor o directamente a la escena, como en el
ejemplo, para que se visualice.
addChild(miCargador);
Pero esto no lo hemos hecho directamente, sino que lo hemos hecho en el siguiente
evento:
miCargador.contentLoaderInfo.addEventListener(Event.COMPLETE, ins
ertMovie);
Por qu? Porque este evento se produce cuando el archivo est completamente
cargado. Esto evita que intentemos mostrar un objeto que an no se ha cargado del todo.
Sigue el siguiente ejercicio paso a paso para ver cmo Crear una pelcula cargando
archivos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// FOTOGRAMA 1
stop();
var total:Number=4;
var imagenActual:Number=0;
//Utilizamos un objeto Loader para cargar las imgenes
var cargadorImagen = new Loader();
contenedorImagen.addChild(cargadorImagen);
Tenemos que obtener datos externos, para eso hemos empleados dos objetos:
El Loader ya
lo
conocemos,
al MovieClip contenedorImagen.
de
Vamos
momento
a
slo
centrarnos
lo
en
hemos
cmo
aadido
utilizamos
el URLLoader.
?
1
2
declararlo,
debemos
indicar
el
formato
de
datos,
con
la
Esta ltima es la opcin que hemos elegido, porque aunque queremos cargar texto, lo
tenemos dividido en variables. Por lo tanto, escribimos en el archivo diapositivas.txt el
texto que queremos mostrar con el siguiente formato:
?
1
2
3
4
5
6
7
8
Por tanto, lo siguiente ha sido indicar a nuestro URLLoader cul es el archivo que
contendr esas variables.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
como
ya
vimos
con
los
cargadores,
hemos
utilizado
el
Ahora, vamos al fotograma 6. Cada vez que se pase por aqu, cambiaremos la imagen
y el texto. Hemos elegido este fotograma porque aqu habamos cambiado el valor
de Alffa a 0. Es decir, aqu es donde ha acabado de desvanecerse la imagen y donde
empieza a cargarse la siguiente. Veamos el cdigo que hemos puesto:
?
1
2
3
4
5
6
7
8
9
if (imagenActual==total) {
imagenActual=0;
}
imagenActual++;
//Cambiamos el texto
textoDiapositiva.titulo_txt.text=cargadorTexto.data['titulo'+imagenActual];
textoDiapositiva.descripcion_txt.text=cargadorTexto.data['descripcion'+imagenActua
//Y cambiamos la imagen
cargadorImagen.load(new URLRequest ("imagenes/imagen"+imagenActual+".jpg"));
vez
en
cuando
utilizaremos
otros
elementos
como
Flash ofrece estos objetos como componentes. Para acceder a ellos slo tendrs que
abrir el Panel Componentes desde Ventana Componentes.
Una vez abierto el panel haz clic en User Interface para desplegar sus elementos y
vers todos los componentes que podrs utilizar.
Button (Botn):
icon: Aade un icono al botn. Para insertar un icono deberemos crear un grfico o
clip de pelcula y guardarlo en la Biblioteca. Una vez all lo seleccionamos y
value: Especifica los datos que se asociarn al RadioButton. La propiedad puede ser
cualquier tipo de datos. Podemos acceder a esta propiedad a travs de cdigo para
ver que contiene.
groupName: Nombre del grupo. En un grupo de botones de opcin slo uno de ello
puede estar seleccionado. Definiremos este grupo mediante esta propiedad. Todos
los botones que tengan el mismo nombre en groupName pertenecern al mismo
grupo.
label: Texto que se leer al lado del botn.
labelPlacement: left, right, top o bottom. Indica la posicin de la etiqueta de texto
respecto al botn. Respectivamente, izquierda, derecha, arriba y abajo.
selected: Indica si el botn se haya seleccionado o no. De nuevo, en un mismo
grupo slo un botn de opcin puede estar seleccionado.
editable: Permite la edicin del campo. Mediante ActionScript podemos hacer que
se aadan nuevos elementos a la lista.
. O
List (Lista):
NumericStepper (Contador
numrico):
Nota: Todas las propiedades mencionadas para cada uno de los componentes son
accesibles a travs de ActionScript escribiendo el nombre de instancia del componente
seguido de un punto y el nombre de la propiedad:
?
1
2
3
4
5
6
7
btn_borrar.addEventListener(MouseEvent.CLICK,boton);
function boton(event:MouseEvent):void{
nombre.text = "";
email.text = "";
mensaje.text = "";
}
Como puedes ver, hemos creado un escuchador para btn_borrar. Cuando se activa
simplemente vaciamos el contenido de los campos de texto que queramos.
Tambin podramos iniciar los campos de otra forma:
?
1
2
3
un
campo
de
texto,
podemos
comprobar
su
longitud
con
la
Una forma ms avanzada sera utilizar expresiones regulares, con el objeto RexExp,
que nos permite personalizar mucho ms la validacin. Por ejemplo, la siguiente funcin
comprueba si el valor es un nmero:
?
1
2
3
4
5
function esNumero(valor:String):Boolean
{
var expRegular:RegExp = /[0-9]+/;
return expRegular.test(valor);
}
Con esto para comprobar si el contenido de un texto es numrico, bastara con
preguntar si esNumero(miCampo.text).
Una funcin muy til es la de establecer dnde colocar el foco escribiendo la siguiente
lnea:
?
miCampoTxt.stage.focus = miCampoTxt;
De este modo, si encontramos un error al validar podemos establecer el punto de
insercin en el campo correspondiente para que el usuario escriba directamente.
Para acabar, debemos de tener un campo de texto para mostrar los posibles errores.
Vamos a unir todo esto en una funcin que validar los datos de un formulario.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function validarDatos():Boolean {
if (txt_nombre.length==0) { //campo requerido
txt_nombre.stage.focus=txt_nombre; //le damos el foco
txt_aviso.text="Introduce tu nombre"; //Indicamos el error
return false; //Devolvemos falso
} else if (!chk_condiciones.selected) {
//Comprobamos que la casilla est marcada
chk_condiciones.stage.focus = chk_condiciones;
txt_aviso.text="Debes aceptar las condiciones";
return false;
} else {
if (esNumero(txt_edad.text)) { //Comprobamos si es un nmero
if (Number(txt_edad.text)<18) { //comprobamos si es mayor
txt_edad.stage.focus=txt_edad;
txt_aviso.text="Tienes que ser mayor de edad";
return false;
} else {
//Si llega hasta aqu, es que todo se ha validado
//Devolvemos true
return true;
}
} else {
txt_edad.stage.focus=txt_edad;
txt_aviso.text="Introduce tu edad";
return false;
}
Como
se
ve,
comprobamos
si
el
texto,
si
la
1
2
3
4
5
6
btn_enviar.addEventListener(Mouse.CLICK, validaryEnviar);
function validaryEnviar(event):void {
if (validarDatos()) { //validamos
enviarDatos(); //Y si es True, enviamos
}
}
Veamos el cdigo:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
}
function envioCompleto(event):void {
//Si se completa, avisamos del envo y limpiamos campos
aviso.text="Envo completo";
txtNombre.text="";
txtApellidos.text="";
txtEmail.text="";
}
function errorEnvio(event):void {
//Si hay un error, avisamos de ello
aviso.text="Se produjo un error, no se ha completado el envo";
}
btn_enviar.addEventListener(MouseEvent.CLICK, validaryEnviar);
function validaryEnviar(event):void {
if (validarDatos()) { //validamos
enviarDatos(); //Y si es True, enviamos
}
}
Podemos ver que para crear las variables en el objeto URLVariables, no tenemos ms
que escribir el nombre que le queremos dar como una propiedad, y asignarle el valor que
queremos guardar en la variable:
?
1
2
3
datosFormulario.nombre = txtNombre.text;
datosFormulario.apellidos = txtApellidos.text;
datosFormulario.email = txtEmail.text;
Al objeto URLRequest, le indicamos el nombre de archivo (nuestra pgina), el mtodo
de envo (method), como en los formularios HTML, y los datos (data) que hemos
configurado en el objeto URLVariables.
1
2
3
1
2
3
4
5
nombre_txt.tabIndex = 1;
mail_txt.tabIndex = 2;
mensaje_txt.tabIndex = 3;
reset_btn.tabIndex = 4;
submit_btn.tabIndex = 5;
Tambin podemos establecer el botn predeterminado del formulario para que
cuando se pulse la tecla Intro sea como si hicisemos clic en l. Escribe la siguiente lnea:
1
2
3
4
Estos conceptos son muy importantes de cara al usuario, ya que muchos estn
acostumbrados a cambiar de un control a otro con el Tabulador y a pulsar Intro para
enviarlo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
var miXML:XML =
<pedido>
<articulo id='1' cantidad='1'>
<nombre>Raqueta Tenis</nombre>
<precio>33.95</precio>
</articulo>
<articulo id='2' cantidad='3'>
<nombre>Pelota Tenis</nombre>
<precio>4.45</precio>
</articulo>
</pedido>;
cargar
informacin
de
archivos
externos
necesitamos
un
elemento URLLoader.
Vamos a ver cmo hemos utilizado la informacin del archivo utilizando estos dos
elementos:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Comenzamos declarandos el objeto XML, al que hemos llamado datosXML porque es
lo que contendr. Como todo objeto, tiene una serie de propieades que no vamos a
detallar. Hemos utilizado la propiedad ignoreWhitespace, que ignorar aquellos campos
que estn en blanco y as no tendremos que preocuparnos por posibles errores.
A continuacin, extraemos la informacin del archivo, para lo que hemos utilizado un
objeto URLLoader, al que hemos llamado cargadorXML. En su mtodo load le
indicamos el archivo a cargar. Adems, como venamos haciendo, para no continuar con
el trabajando hasta que no se haya terminado de cargar, utilizamos el evento complete.
En l, trataremos la informacin.
Llegados a este punto, tenemos la informacin cargada en la propiedad .data del
cargador. Como no hemos indicado otra cosa, se ha cargado todo el archivo como texto.
Utilizamos la funcin XML() para convertirlo a informacin XML, y se la asignamos a
nuestro objeto XML:
?
datosXML = XML(cargadorXML.data);
Ahora, ya tenemos datosXML con toda la informacin. Con este objeto es sencillo
acceder a ella, listarla, etc. En nuestro ejemplo, si queremos acceder al primer email
(posicin 0), lo podemos hacer escribiendo datosXML.comentario.email[0].
Basndonos en eso, hemos hecho un bucle for para recorrer todos los elementos, e ir
construyendo la cadena de texto que mostramos en la caja de texto.
Esta forma requiere que conozcamos la estructura del archivo, saber que se divide en
etiquetas <comentario> y que dentro de ella tenemos la etiqueta <email>.
Utilizando los ndices, podemos acceder a los distintos elementos de la jerarqua. Por
ejemplo:
1
2
3
4
5
trace
trace
trace
trace
//Los
Haremos referencia a este mismo ejemplo al final del tema. Si quieres probarlo,
encontrars el archivo XML en la carpeta ejercicios/cargarXMLyCSS. Recuerda, que
para poder porbarlo antes hay que guardarlo.
1
2
3
4
5
6
7
8
Pero lo normal es que si escribimos cdigo HTML es porque queremos que se vea con
un determinado formato, no las etiquetas HTML.
Para
que
Flash
tome
el
contenido
como
HTML,
en
vez
de
utilizar
la
1
2
3
4
5
6
7
8
.mensaje {
font-style: italic;
color: #2C578F;
}
a {
font-weight: bold;
color: #CF406E;
}
Podemos distinguir dos estilos: uno aplicado a los elementos con la clase mensaje
(class="mensaje") y otro aplicado a los enlaces (<a href...).
Como siempre, e independientemente de para qu lo usemos, cargamos la informacin
del archivo con un objeto URLLoader, y preparamos el evento complete, para utilizar los
datos cuando estn listos:
1
2
3
1
2
3
4
5
6
7
Esto debemos de realizarlo antes de rellenar la caja de texto con HTML, ya que
flash no trata igual el HTML si no tiene una hoja de estilo asociada.
Si queremos podemos cambiar la propiedad para utilizar otra hoja de estilo. O
aprovechando las funciones y objetos definidos, podemos crear un botn para que cargue
una nueva hoja:
?
1
2
3
4
btn.addEventListener(MouseEvent.CLICK, cambiarHoja);
function cambiarHoja(event) {
cargadorCSS.load(new URLRequest('comentarios2.css'));
}
Como el cargador ya tiene asociado el evento complete, se volver a ejecutar la
funcin estiloCargado asignando el nuevo estilo.
20.1. Introduccin
Los filtros son una potente herramienta que abre nuevas posibilidades en nuestras
animaciones Flash.
Su uso aumentar la capacidad de mejorar el aspecto y funcionamiento de nuestros
proyectos, aunque slo estn disponibles para los clips de pelcula, los botones y el
texto.
En este tema veremos los filtros disponibles, su uso y cmo manejarlos mediante el
panel Propiedades, el Editor de movimiento y sobre todo mediante ActionScript.
Para ilustrar su funcionamiento mostraremos ejemplos de cmo afectan los filtros a esta
imagen:
Nota: Antes de utilizar el filtro, observars que lo importamos con la sentecia import
flash.filters.tipoFiltro;.
Esto
no
es
necesario
si
trabajamos
panel Acciones, pero s si lo hacemos en otro archivo, por ejemplo, en una clase.
en
el
Puedes aplicar este filtro y todos los dems desde el panel Propiedades:
Sus opciones son las siguientes:
los
Extractor: booleano, activa el filtro extractor, hace que el objeto se vuelva del color
del fondo.
Sombra interior: booleano, hace que la sombra sea interior.
Ocultar Objeto: booleano, esconde el objeto dejando slo la sombra.
Color: determina el color de la sombra.
Como hemos dicho, tambin podemos aplicar los filtros desde el Editor de
movimiento, tendramos las mismas opciones pero con las grficas propias del editor de
movimiento:
Si aplicamos el filtro desde Action Script, los parmetros son los mismos pero el
nombre hay que darlo en ingls, los valores correspondientes son los siguientes (adems
del valor alpha):
1
2
3
4
5
6
7
8
9
10
import flash.filters.DropShadowFilter;
var sombra:DropShadowFilter = new DropShadowFilter();
sombra.strength = 5;
sombra.alpha = 0.50;
sombra.color = 0x000000;
...
miClip.filters = [sombra];
1
2
3
1
2
3
4
5
6
7
8
import flash.filters.BlurFilter;
var desenfocar:BlurFilter = new BlurFilter ();
desenfocar.blurX = 5;
desenfocar.blurY = 5;
desenfocar.quality= 3;
miClip.filters = [desenfocar];
1
2
3
1
2
3
4
5
6
7
8
9
10
11
import flash.filters.GlowFilter;
var iluminado:GlowFilter = new GlowFilter();
iluminado.quality = 3;
iluminado.alpha = 0.50;
iluminado.color = 0x000000;
...
miClip.filters = [iluminado];
1
2
3
Puedes omitir los parmetros que quieras, pero ten en cuenta que siempre se
interpretarn los valores que des en este orden hasta que no encuentre ms.
1
2
3
4
5
6
7
8
9
10
import flash.filters.BevelFilter;
var bisel:BevelFilter = new BevelFilter();
bisel.strength = 5;
bisel.angle = 45;
bisel.shadowColor = 0x000000;
...
miClip.filters = [bisel];
1
2
3
4
5
6
7
8
9
import flash.filters.BevelFilter;
miClip.filters = [bisel];
As en el constructor deberemos sustituir cada parmetro por el valor que queremos
darle.
Puedes omitir los parmetros que quieras, pero ten en cuenta que siempre se
interpretarn los valores que des en este orden hasta que no encuentre ms.
Utilizando este filtro podremos aadirle una iluminacin (como en el filtro anterior) a la
imagen, pero con la caracterstica de que esta iluminacin estar compuesta por un
degradado:
1
2
3
4
5
6
7
8
9
10
11
import flash.filters.GradientGlowFilter;
var iluminado:GradientGlowFilter = new GradientGlowFilter();
iluminado.angle = 45;
iluminado.colors = [0xFF0000, 0x00FF00, 0x0000FF];
iluminado.type = "inner";
...
miClip.filters = [iluminado];
1
2
3
1
2
3
4
5
6
7
8
9
10
import flash.filters.GradientBevelFilter;
var bisel:GradientBevelFilter = new GradientBevelFilter();
bisel.angle = 90;
bisel.colors = [0xFF0000, 0x00FF00, 0x0000FF];
bisel.type = "full";
...
miClip.filters = [bisel];
1
2
3
4
5
?
import flash.filters.GradientBevelFilter;
var bisel:GradientBevelFilter = new GradientBevelFilter(distance, angle, colors, alphas, ratios,
knockout);
miClip.filters = [bisel];
As en el constructor deberemos sustituir cada parmetro por el valor que queremos
darle.
Puedes omitir los parmetros que quieras, pero ten en cuenta que siempre se
interpretarn los valores que des en este orden hasta que no encuentre ms.
1
2
3
4
5
6
7
8
9
10
import flash.filters.ColorMatrixFilter;
var miMatriz:Array =
[1, 0, 0, 0, 100,
0, 1, 0, 0, 100,
0, 0, 1, 0, 100,
0, 0, 0, 1,
0];
1
2
3
4
5
6
Como esta propiedad se trata de una matriz tambin podemos acceder a los filtros de
esta forma:
?
1
2
3
4
5
6
21.1. Introduccin
Con Flash cada vez es ms fcil aadir vdeos a nuestras presentaciones o webs. En
particular Flash CS5 incorpora una serie de caractersticas que facilitan la tarea al mximo
y permiten el uso de vdeos como si se tratase de cualquier otro objeto en pantalla.
primero
que
deberemos
hacer
es
transformar
nuestro
vdeo
de
formato avi, mpeg, mov, wmv o dv al formato que utiliza Flash: flv.
Este formato, adems de crear archivos de vdeo de buena calidad muy
comprimidos, te permitir introducir puntos de referencia desde donde controlaremos la
interaccin del entorno de la pelcula con el vdeo.
Haz clic en Archivo Importar Importar vdeo para empezar a configurar el
archivo .flv que crearemos.
Se abrir una pantalla como sta:
Aqu debers seleccionar el archivo que quieres importar para utilizarlo en tu pelcula.
Haz clic en el botn Examinar y bscalo en tus carpetas. Cuando lo hayas encontrado
pulsa el botn Aceptar y estars listo para seguir pulsando el botn Siguiente.
Tambin es posible marcar la opcin Ya se ha implementado en un servidor Web,
Flash Vdeo Streaming Service o Flash Communication Server. En este caso debers
introducir la URL del archivo, que previamente habr sido preparado para poder utilizarlo
en Flash.
La siguiente pantalla te permitir seleccionar el aspecto del reproductor:
La siguiente pantalla te mostrara la informacin del video que vamos a exportar, donde
se importara, etc:
Tanto los puntos de ActionScript como los codificados, pueden enviar parmetros, lo
que nos permite recibir informacin.
align: especifica el diseo del vdeo. Por ejemplo, lo podemos centrar con center.
autoPlay: puede tomar los valores true o false. Indican si el vdeo debe
reproducirse nada ms abrir el archivo o esperar a una orden para empezar a
reproducirse.
cuePoints: indica los puntos de referencia que estn incluidos en la pelcula. Una
vez importada la pelcula a formato flv no pueden ser modificados los puntos
codificados, aunque s los de ActionScript.
isLive: puede tomar los valores true o false. Este campo se utilizar para la
transmisin de vdeo en vivo y slo podr utilizarse a travs de un servidor
de Streaming.
preview: Permite obtener una previsualizacin desde una imagen png.
scaleMode: Indica si se altera la escala del vdeo: si muestra su tamao original, si
se ajusta al tamao de la escena, etc...
skin: desde aqu podemos modificar la apariencia de los controles de la pelcula y
seleccionar uno entre los predefinidos.
skinAutoHide: puede tomar los valores true o false. Indicar si los controles se
pueden esconder para volver a aparecer cuando el cursor se site sobre la pelcula.
skinBackgroundAlpha establece la transparencia del fondo del skin,
y skinBackgroundColor su color.
source es el archivo de vdeo que se mostrar en el reproductor.
volume: de 0 a 100. Indica el volumen mximo del vdeo.
A parte de las que se muestran en el panel, existen otras propiedades que pueden
sernos tiles:
autoRewind: puede tomar los valores true o false. Indica si el vdeo deber volver a
la posicin inicial despus de haberse reproducido completamente, o tras hacer
un stop.
autoSize: puede tomar los valores true o false. Indica si el control deber ajustarse
al tamao del vdeo, o por el contrario deber ser el vdeo el que se ajuste al tamao
del control.
bufferTime: especifica el nmero de segundos que se almacenarn en la memoria
antes de que se inicie la reproduccin del vdeo.
totalTime: indica el tiempo total del vdeo.
miVideo.volume = 0;
Una vez aadidos los componentes necesarios al Escenario tendrs que darle un
nombre de instancia y luego asociarlo al reproductor empleando ActionScript.
Bsicamente, el reproductor tiene una propiedad que coincide con el tipo de componente,
por lo que hay que asignar cada instancia a su propiedad correspondiente. Un ejemplo
sera el siguiente:
?
1
2
3
4
5
6
7
8
9
10
miVideo.playButton = miBotonPlay;
miVideo.pauseButton = miBotonPausa;
miVideo.playPauseButton = miBotonPausaPlay;
miVideo.stopButton = miBotonStop;
mVideo.backButton = miBotonAtras;
miVideo.forwardButton = miBotonAdelante;
miVideo.muteButton = miBotonSilencio;
miVideo.volumeBar = miBarraVolumen;
miVideo.seekBar = miBarraDeslizadora;
miVideo.bufferingBar = miBarraProgreso;
que
consideres
componente FLVPlayback.
necesarios
utilizar
las
propiedades
del
Puedes recurrir al panel Fragmentos de cdigo donde encontrars cdigos muy tiles
con las funciones bsicas.
miVideo.play();
miVideo.stop();
miVideo.pause();
miVideo.seek(5);
volume: define el volumen del vdeo. Puedes introducir un valor entre 0 y 100.
?
miVideo.volume = 50;
1
2
3
4
5
6
7
8
miBoton.addEventListener(MouseEvent.CLICK,pararContinuar);
function pararContinuar(event:MouseEvent) {
if (miVideo.state==miVideo.PAUSED) {
miVideo.play();
} else {
miVideo.pause();
}
}
1
2
3
4
5
miBoton.addEventListener(MouseEvent.CLICK,reproducirInicio);
function reproducirInicio(event:MouseEvent) {
miVideo.seekToNavCuePoint("inicio");
miVideo.play();
}
Este trozo de cdigo utiliza la funcin seekToNavCuePoint para buscar el punto de
referencia que se le indique, luego tendremos que decirle que reanude la reproduccin.
Tambin
puedes
utilizar
las
avanzar
1
2
miVideo.seekToNextNavCuePoint();
miVideo.seekToPrevNavCuePoint();
Como vimos antes, podamos crear puntos de referencia de Eventos para pasar
parmetros a nuestra pelcula desde la reproduccin del vdeo.
Capturar el evento.
Imaginemos que tenemos un vdeo con un punto de referencia llamado susto, y que
cuando el vdeo lo alcance, queremos mostrar un texto determinado en un componente de
texto.
Lo
que
tenemos
que
hacer
es
escuchar
cundo
se
produce
el
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
import fl.video.MetadataEvent;
reproductor.addEventListener(MetadataEvent.CUE_POINT,eventosVideo);
function eventosVideo(event:MetadataEvent ) {
if (event.info.parameters) {
mensaje.gotoAndPlay(event.info.parameters["fotograma"]);
}
}
En el ejemplo hemos creado un clip de pelcula que se llama mensaje. Cuando se van
produciendo determinados eventos en el vdeo vamos moviendo el cabezal de
reproduccin de dicho clip y as creamos una vinculacin entre ambos, el clip y el vdeo.
22.1. Introduccin
En este tema veremos los elementos bsicos que necesitaras a la hora de crear juegos
con Flash: el movimiento, los choques, la rotacin, creacin aleatoria de elementos,
etc.
A medida que avancemos en el tema iremos haciendo referencia a este juego que
hemos creado como ejemplo. Pero, primero empezaremos por lo bsico.
modificar
el
tamao
del
objeto
utilizando
las
1
2
miClip.width = 100;
miClip.height = 200
Las propiedades scaleX e scaleY cambian el tamao, pero de forma porcentual,
donde 1.0 equivale al 100%. Podemos utilizar estas propiedades para hacer un clip el
doble de grande que era, por ejemplo:
1
2
miClip.scaleX = 2;
miClip.scaleY = 2;
Har que su visualizacin sea del doble (200%).
Tambin podemos averiguar o modificar la posicin de un objeto, basta con trabajar con
sus propiedades x e y:
1
2
3
miClip.x = 50;
miClip.y = 150;
4
5
miClip.x = miClip.x + 1;
Utilizando estas propiedades y combinndola con las caractersticas de los
Movieclips podemos recrear de forma ms natural el movimiento.
Veamos este ejemplo:
Aqu hemos creado un clip de pelcula con tres posiciones, parado, izquierda y derecha:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
miClip.addEventListener(MouseEvent.CLICK,iniciarMovimiento);
function iniciarMovimiento(event:MouseEvent):void{
if (miClip.x <= 10) {
miClip.gotoAndStop("derecha");
derecha = true;
}
if (miClip.x >= 495) {
miClip.gotoAndStop("izquierda");
izquierda = true;
}
}
miClip.addEventListener(Event.ENTER_FRAME,desplazar)
function desplazar(event):void{
if (derecha) {
if (miClip.x < 495) {
miClip.x = miClip.x + 6;
} else {
miClip.gotoAndStop("parado");
derecha = false;
}
}
if (izquierda) {
if (miClip.x > 10) {
miClip.x = miClip.x - 6;
} else {
miClip.gotoAndStop("parado");
izquierda = false;
}
}
}
Observa cmo hemos utilizado aqu el evento ENTER_FRAME. Nos valemos de ella
para crear el movimiento, de esta forma hacemos que la coordenada x del objeto se
incremente cada vez que entre en el fotograma de nuevo. Veremos esta funcin con
ms detalle a lo largo del tema.
Nota: Recuerda que el evento ENTER_FRAME se produce de forma continua y
constante, normalmente varias veces por segundo.
Hemos utilizado las variables derecha e izquierda (de tipo booleano) para evaluar si el
objeto debe desplazarse. En el evento ENTER_FRAME chequeamos estas variables y si
estn a true comenzamos el movimiento hasta la posicin que queramos.
A medida que vayamos avanzando en el tema veremos ms funciones y mtodos que
nos permitirn acciones ms verstiles y ajustadas a nuestras necesidades.
Otra forma de modificar la apariencia del objeto con el que trabajamos es utilizando
la propiedad rotation.
Esta propiedad acta sobre el objeto rotndolo tantos grados como especifiques
respecto a su posicin original. Por ejemplo:
?
miClip.rotation = 90;
Esta lnea har que el objeto rote 90 grados en el sentido de las agujas del reloj.
Para rotar un objeto hacia el lado contrario basta con aadirle un signo menos (-) antes
del ngulo:
miClip.rotation = -90;
Para devolver al objeto a su posicin original slo tendrs que escribir la siguiente lnea:
miClip.rotation = 0;
As la rotacin que acta sobre el objeto es nula y se muestra en su posicin original.
Recuerda que para que las rotaciones parezcan reales debers posicionar el objeto
dentro del clip en el centro absoluto, para que as la referencia del clip se encuentre en la
posicin adecuada.
Observa la diferencia entre estos dos clips:
de
ste
debers
utilizar
los
botones
del Panel
Alinear (Ventana Alinear) para centrar el objeto respecto al punto de referencia del
clip.
El problema ahora se nos plantea cuando queremos que el objeto se oriente hacia unas
coordenadas en concreto. Cmo calculamos el ngulo necesario para que nuestro
elemento se oriente hacia otro situado en las coordenadas 100, 200? La solucin no es
muy complicada: deberemos echar mano de la trigonometra.
En Flash tenemos una funcin muy til que nos ayuda a encontrar ngulos rpidamente.
Utilizando la funcin Math.atan2 recuperaremos el ngulo formado por unas
coordenadas en el espacio respecto a un punto central.
Veamos un ejemplo:
Trigonometria 1
Escribiendo la siguiente lnea recuperaremos el ngulo que buscamos:
?
1
var angulo:Number = Math.atan2(x, y);
Nota: Hay que tener en cuenta que el ngulo calculado est expresado en radianes.
Ahora veamos las tres consideraciones que tenemos que tener en cuenta.
Observa este ejemplo:
Trigonometria 2
Lo primero a tener en cuenta es que las coordenadas que tenemos del punto al que
queremos orientar el objeto no estn en relacin ste.
Podemos averiguarlas de forma muy fcil haciendo una pequea conversin restando
las coordenadas entre s:
Trigonometria 3
Ahora ya podemos emplear la funcin atan2:
?
1
var angulo:Number = Math.atan2(x1 - x2, y1 - y2);
Lo segundo que tendremos que saber es que esta funcin devuelve un ngulo medido en
el sentido contrario a las agujas del reloj, es decir:
Trigonometria 4
Por tanto si decimos a nuestro objeto que se oriente -30 grados se colocar de esa forma:
Trigonometria 5
Nuestro objeto se encuentra en otro cuadrante completamente diferente, pero si
observamos con atencin, la diferencia siempre ser de 90:
Trigonometria 6
Slo tenemos que sumarle 90 al ngulo resultante para que el objeto se oriente hacia el
lugar correcto.
As que solventaremos esto son una sola lnea. Pero antes convertiremos el ngulo
resultante en radianes a grados:
?
1
2
var grados:Number = Math.round(angulo*180/Math.PI);
miClip.rotation = grados + 90;
Desde luego la suma que hemos realizado es consecuencia directa de que el objeto este
orientado inicialmente hacia arriba (y empiece a contar los grados desde ese punto en
0).
Si partisemos de un estado original horizontal como el desfase del objeto ya se
encuentra a 90 grados no har falta realizarlo:
Trigonometria 7
Observa que en este caso si giramos el objeto -30 grados se colocar orientado hacia la
posicin que buscamos.
O incluso, si al contrario, el objeto se encuentra orientado hacia la izquierda deberemos
sumarle 180.
Trigonometria 8
Como ves, todo depender de la posicin original del objetos (y de que vrtice quieras
orientar). Lo ms aconsejable en este caso es que los objetos que vayan a rotar estn
orientados hacia la derecha, as no tendrs que preocuparte del desfase del ngulo.
Otra de las tcnicas que nos ser muy til es la carga y descarga de elementos
existentes en la biblioteca. Esto lo haremos con la funcin addChild.
Recordemos que esta funcin aade un elemento (hijo) a la lista de visualizacin de un
contenedor (padre). Si omitimos el objeto, lo aadimos a la pelcula general.
Tiene la siguiente sintaxis:
?
miContenedor.addChild(objeto);
Como ya vimos, esto lo emplebamos para cargar agregar archivos externos. Pero
ahora queremos cargar elementos que ya tengamos en la biblioteca. Para poder incluir
un clip desde la biblioteca, antes deberemos crear una clase para poder acceder a l
Con esto, hemos creado la una clase (en la imagen, la clase miClip). Como no hemos
asociado nada de cdigo, esta clase se comportar exactamente como un MovieClip, ya
que es su clase base (caja de texto Clase base). Ahora, para agregar estos elementos,
slo tenemos que crear un nuevo objeto de la clase, y agregarlo al contenedor:
?
1
2
eliminar
clips
insertados
que
comentamos
al
hablar
de
los
contenedores.
?
miContenedor.removeChild(miClip);
Recuerda que antes de quitar un elemento, es recomendable borrar sus escuchadores
de eventos.
miObjeto.startDrag(bloqueaCentro, rectngulo);
En bloqueaCentro podremos pasarle un valor booleano (true o false) que indicar si el
arrastre se realizar desde el centro del clip (true) o desde el punto donde hizo clic el
usuario (false).
El otro parmetro, rectngulo, nos permite definir los lmites de la zona donde
podemos arrastrar. Esta opcin es muy til cuando queremos que el arrastre slo se
pueda realizar sobre una zona determinada, como por ejemplo las tizas de las barras de
desplazamiento, que no se pueden arrastrar fuera de la zona rectangular que delimitan
dichas barras.
Una propiedad muy til que tambin te ser de mucha ayuda es la de dropTarget. Te
permitir averiguar sobre qu objeto se ha soltado el objeto arrastrado:
1
2
3
4
5
6
7
8
9
10
miObjeto.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar);
function arrastrar(event):void {
miObjeto.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, soltar);
function soltar(event):void {
miObjeto.stopDrag();
trace(miObjeto.dropTarget);
}
Este
cdigo
devolver
al Panel
Salida el
tipo
de
objeto
(podemos
Otra cosa que nos ser de gran ayuda es poder localizar la posicin del ratn. De
este modo podramos hacer que los objetos se desplacen u orienten hacia el ratn
Para averiguar las coordenadas del ratn slo tendrs que recurrir a las
propiedades mouseX y mouseY:
?
1
2
1
2
3
4
5
6
7
8
9
1 Mouse.show();
22.4. Interaccin del teclado
Podemos aadir a nuestras pelculas interaccin con las teclas pulsadas, el
procedimiento es muy sencillo, basta con detectar los eventos que se producen al pulsar
las teclas y saber qu tecla lo ha originado.
Cuando recogemos un evento de teclado, disponemos del mtodo .keyCode, que nos
indica la tecla que se ha pulsado. Dependiendo de la que sea, haremos una cosa u otra.
Por ejemplo:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
addEventListener(KeyboardEvent.KEY_DOWN, capturarTeclado);
function capturarTeclado(tecla:KeyboardEvent):void{
//Es importante especificar que es un vento del tipo KeyboardEvent
//para poder emplear el mtodo .keyCode.
switch (tecla.keyCode){
case Keyboard.RIGHT:
//mover hacia la derecha
break;
case Keyboard.LEFT:
//mover hacia la izquierda
break;
}
}
Los cdigos de las teclas son bastante sencillos, las flechas UP, DOWN, RIGHT y
LEFT; la barra espaciadora SPACE; y las teclas especiales SHIFT, CONTROL, TAB,
CAPSLOCK, ESCAPE, ENTER, BACKSPACE, INSERT, DELETEKEY, HOME,
END, PGDN y PGUP. Siempre precedido por Keyboard.
Los eventos de teclado que podemos emplear son:
KeyboardEvent.KEY_DOWN ("keyDown") - Cuando se pulsa una tecla.
KeyboardEvent.KEY_UP ("keyDown") - Cuando se suelta.
Recordemos el ejemplo que vimos al principio del tema. Esta vez, lo vamos a cambiar
para mover el objeto con las teclas en vez de con el ratn:
Nota: Si no responde al teclado, haz clic primero para que tome el foco.
miClip.gotoAndStop("parado");
//Detectamos el evento al pulsar tecla, y marcamos
//La direccin del movimiento
addEventListener(KeyboardEvent.KEY_DOWN, capturarTeclado);
function capturarTeclado(tecla:KeyboardEvent):void {
switch (tecla.keyCode) { //Dependiendo de la tecla, indicamos
case Keyboard.RIGHT : //una direccin u otra
derecha=true;
break;
case Keyboard.LEFT :
izquierda=true;
break;
}
}
//En el evento onEnterFrame, comprobamos si estn activas
//Las variables que indican la direccin del movimiento
miClip.addEventListener(Event.ENTER_FRAME, movimiento);
function movimiento(event):void {
if (derecha) {
miClip.gotoAndStop("derecha");
if (miClip.x<490) {
miClip.x=miClip.x+7;
}
} else if (izquierda) {
miClip.gotoAndStop("izquierda");
if (miClip.x>7) {
miClip.x=miClip.x-7;
}
}
}
//Detectamos cundo se suelta la tecla
addEventListener(KeyboardEvent.KEY_UP, parar);
function parar(event):void {
derecha=false; //Y paramos el movimiento
izquierda=false;
miClip.gotoAndStop("parado");
}
Esto lo podremos evaluar y tratar con los mtodos hitTestPoint(x, y) para detectar si
una coordenada cae dentro del objeto, y hitTestObject(object) que nos indica si dos
objetos se solapan (chocan).
Su uso tiene dos posibilidades, ambas muy sencillas. Puedes evaluar si en un punto en
concreto se encuentra un objeto especfico (muy til para detectar los clics del ratn o
donde se encuentra en cada momento):
?
1
2
3
4
5
6
7
miClip.addEventListener(MouseEvent.MOUSE_UP, miFuncion);
function miFuncion(event:MouseEvent):void{
if (miClip.hitTestPoint(mouseX, mouseY) {
//coincidencia
}
}
Este cdigo evala la posicin del ratn a cada clic, si las coordenadas introducidas en
el mtodo hitTestPoint coinciden con el rea de miClip se produce colisin.
hitTestPoint admite un tercer parmetro booleano. ste indica si la colisin se calcula
con respecto a la forma del elemento (true) a al rectngulo delimitador del objeto (false).
La opcin por defecto es esta ltima.
Cuando
queremos
evaluar
si
un
objeto
"choca"
con
otro,
empleamos
el
mtodo hitTestObject:
?
miClip.hitTestObject(miOtroClip);
En ambos casos, el valor devuelto es true, si hay colisin, o false si no.
En desplazamientos utilizaremos mucho esta opcin para averiguar si el objeto que
estamos moviendo choca con una pared u otro objeto.
Ten en cuenta que la posicin que deberemos evaluar si hace colisin con la
pared debe ser aquella que adoptara el objeto despus de desplazarse. Si lo
desplazamos antes los objetos pueden quedar solapados, y eso, dependiendo del caso,
puede no ser adecuado para nuestro diseo.
Esto complica un poco las cosas, pues deberemos calcular primero dnde estarn las
coordenadas del objeto tras moverlo y calcular la colisin antes de moverlo.
miPared.hitTestPoint(coorXfinal_Clip, coorYfinal_Clip);
Pero, cmo conocemos las coordenadas de una forma?, cmo averiguo el punto
mximo que alcanza en la esquina abajo derecha?. Como siempre, Flash nos soluciona
esto incorporando un mtodo a los objetos de visualizacin que nos devuelve sus
medidas. El mtodo getBounds.
miClip.getBounds(objetoReferencia);
En objetoReferencia indicaremos
el
objeto cuyo
sistema
de
coordenadas
utilizaremos como punto de referencia. Normalmente escribiremos stage, para que las
coordenadas dadas sean respecto a la pelcula en general y no sobre un clip en particular.
El mtodo nos devuelve un objeto Rectangle. Este tipo de objeto define un rea
rectangular, y nos permite conocer la posicin de sus cuatro lados con las siguientes
propiedades:
1
2
3
4
miClip.getBounds(stage).left;
miClip.getBounds(stage).right;
miClip.getBounds(stage).top;
miClip.getBounds(stage).bottom;
Realiza el ejercicio paso a paso de Colisin y Movimiento para practicar este
concepto.
Otra de las funciones que te vendrn muy bien es la de dotar de velocidad a los
movimientos de los objetos.
Observa el cdigo que hemos introducido en el juego:
?
1
this.velocidad = velocidad_base+nivel*1.5+(2-escala);
En la definicin de la clase Proyectil, hemos creado una propiedad velocidad que
calculamos en funcin a una velocidad base a la que le sumamos la velocidad que
depende del nivel y de la escala del proyectil. De hecho, esa velocidad va aumentando a
medida que se van eliminando proyectiles y subiendo de nivel.
De ah que cuando asignamos el movimiento del elemento:
?
1
this.y += this.velocidad;
Lo hacemos refirindonos a la velocidad, as podemos variarla en cualquier momento
aumentndola o reducindola segn nuestros propsitos.
Por ltimo veremos algo que nos permitir mostrar informacin a los usuarios para que
ellos tengan conocimiento de cmo se est desarrollando la partida. Esto lo haremos con
los textFields. Los textFields pueden ser elementos que hayamos creado antes de
publicar la pelcula, as que no tendremos problemas con ellos. Definimos su aspecto y
propiedades en el panel de Propiedades, y utilizando su nombre de instancia, podemos
cambiar su contenido dinmicamente de la siguiente manera:
?
1
estadisticas_txt.text = "Estas son las estadsticas del juego";
Simplemente los declararemos como texto dinmico e iremos modificando su
contenido. Pero, Y si queremos crear un campo de texto mediante ActionScript?
Muy sencillo, te bastarn unas pocas lneas para conseguirlo:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Creamos el formato
var miFormato:TextFormat = new TextFormat();
//Definimos el formato;
miFormato.bold = true;
miFormato.font = "Arial";
miFormato.size = 12;
miFormato.color = 0xFFFFFF;
miFormato.align = "left";
//Creamos el campo de texto
var estadisticas_txt:TextField = new TextField();
//Definimos la propiedades del campo de texto
estadisticas_txt.name = "estadisticas_txt";
estadisticas_txt.defaultTextFormat = miFormato; //asignamos el formato
estadisticas_txt.selectable = false;
estadisticas_txt.x = 10;
estadisticas_txt.y = 0;
estadisticas_txt.width = 530;
estadisticas_txt.height = 22;
estadisticas_txt.text = "Estas son las estadsticas del juego";
//Lo aadimos a la lista de visualizacin
addChild(estadisticas_txt);
En nuestro ejemplo, por comodidad no creamos todo el campo de texto desde el cdigo.
Puedes ver que hemos creado un objeto llamado miFormato que es del tipo formato de
texto, con unas caractersticas bsicas que podremos aplicar sobre cualquier texto de
nuestra pelcula. Luego mediante ActionScript hemos creado otro objeto estadisticas_txt
del tipo campo de texto, que ser el que mostrar el texto.
Ahora slo har falta remitirse a la propiedad text del texto que hemos creado para darle
un valor, y como hemos visto antes.
Las propiedades de formato de texto que hemos utilizado son las ms comunes, si
necesitas un listado completo de ellas puedes visitar nuestra seccin avanzada. tema
avanzado
Antes de realizar los ejercicios finales, te recomendamos seguir el ejercicio paso a paso
Crear una clase en ActionScript.
mover
un
objeto
debemos
modificar
su
posicin
definida
por
las
Ya tenemos nuestro cdigo casi preparado, ahora slo falta hacer que el proceso se
repita un nmero determinado de veces. Esta pelcula Flash slo tiene un fotograma.
Cmo hacemos esto? Lo primero que se nos ocurre es incluir una instruccin while ...
o una instruccin for ... , si lo hacemos veremos que no funcionar porque la repeticin
es tan rpida que no da tiempo a ver nada.
La solucin est en introducir una instruccin que haga que el proceso se repita cada 35
milisegundos. Esto lo vamos a ver en el punto siguiente.
Hemos colocado un botn en la pelcula de forma que cada vez que se pulsa, se detiene
la ejecucin (si todava no haba acabado) y se lanza una nueva ejecucin.
Cuando el tope llega al suelo se detiene la ejecucin.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
btn_reproducir.addEventListener(MouseEvent.MOUSE_UP,playescena)
function playescena (event:MouseEvent):void {
var baja:Boolean = true; //Si la bola sube o baja
var incre_x:Number = 3.5; //Incremento vertical
var incre_y:Number = 8; //Incremento horizontal
var suelo:Number = 280; //Distancia a la que est el suelo
var tope:Number = 0; //Altura mxima del bote
var elasticidad:Number = 3; //Corrector del tope
bola_mc.y = 0; //Comienza en la esquina superior izquierda
bola_mc.x = 0;
tope += (suelo - bola_mc.y) / elasticidad; //calculamos el tope
var repeticion:Number;
clearInterval(repeticion);
repeticion = setInterval(botar, 35);//Repetimos botar cada 35 ms
function botar() {
if (baja) { // Si la bola baja...
bola_mc.y += incre_y;//Aumentamos Y
bola_mc.x += incre_x;
if (bola_mc.y>=suelo) {
baja = false; //Si ha llegado al suelo hacemos que suba
}
} else { // Si la bola sube...
bola_mc.y -= incre_y;//Disminuimos Y
bola_mc.x += incre_x;
if (bola_mc.y<=tope) { //Cuando alcance el tope
baja = true; //La hacemos bajar...
if (tope>=suelo) { //Cuando el tope est ms bajo que el suelo
incre_y = 0; //Ya no rebota ms
clearInterval(repeticion);//Fin de la repeticin
} //Al llegar abajo, calculamos el nuevo tope
tope += (suelo - bola_mc.y) / elasticidad;
}
}
}
}
En este sencillo ejemplo la trayectoria de la bola es rectilnea, para que fuese un
movimiento ms real debera seguir una trayectoria curva. Dibujar curvas es un poco
ms complicado que dibujar rectas. Flash nos ofrece una opcin ms sencilla para hacer
que un objeto siga una trayectoria curva: las guas de movimiento que veremos en este
mismo tema aplicadas al bote de una pelota.
Y si queremos que quede perfecto, en vez de utilizar una velocidad constante, esta
debera de depender de la altura, para que fuese decelerando al subir y acelerando al
bajar.
Si deseas probar suerte con las curvas y ActionScript realiza el ejercicio paso a paso
Movimiento en espiral para empezar a familiarizarte con ellas.
Gua Bola
En las imgenes podrs ver qu proceso hemos seguido para dibujar el movimiento.
La gua la hemos dibujando sucesivas curvas de modo que la pelota invite el
movimiento que queremos crear.
Para darle mayor realismo hemos insertado fotogramas claves en puntos crticos para
achatar la pelota y dotarla de elasticidad.
guia bola
Ahora podrs combinar muchas de las tcnicas que hemos aprendido para generar algo
as:
(Haz clic en la pelcula y luego usa las teclas de movimiento a derecha e izquierda)
Hemos visto dos tcnicas diferentes para animar un objeto en Flash, mediante
ActionScript y mediante gua de movimiento.
Segn cada caso concreto resultar ms adecuado elegir una u otra tcnica. En general,
resulta ms fcil y rpido utilizar guas de movimiento que ActionScript, sobre todo si el
movimiento que tiene que seguir el objeto es sinuoso y difcil de definir en trminos de
una ecuacin matemtica.
Hay casos en los que ser ms adecuado utilizar ActionScript y otros casos en los que
slo ser posible crear el movimiento mediante ActionScript, por ejemplo, si queremos
que un objeto se mueva de forma aleatoria por un escenario.
Vamos a ver como crear una animacin de una caja girando en tres dimensiones.
Para abordar una animacin de este tipo, evidentemente, debemos conocer como
dibujar objetos en tres dimensiones. Hay varios tipos de perspectiva que se pueden
utilizar: a) perspectiva caballera b)perspectiva isonomtrica y c) perspectiva cnica.
Estudiar perspectiva no es el objeto de este curso por lo tanto no vamos a ser muy
estrictos al hacer los dibujos y, como consecuencia de ello, el resultado final tampoco va a
ser una animacin perfectamente realista, pero lo que tratamos de explicar es nicamente
el proceso de animacin.
Se trata de hacer girar una caja desde una posicin inicial hasta una posicin fila. Para
hacer la animacin debemos dibujar la caja en varias posiciones intermedias. A
continuacin crearemos animaciones de forma para cada una de las caras visibles de la
caja.
Hay que tener en cuenta que inicialmente la cara de la derecha no es visible, pero se ira
haciendo visible segn avance el giro.
Podemos hacerlo de dos formas: creando un esqueleto dentro de una forma, o uniendo
smbolos con huesos.
Crear un esqueleto en una forma:
Partimos de una forma, como pueden ser elipses, rectngulos, trazos del pincel, etc.
Cualquier cosa que no se haya convertido en un smbolo. Con la herramienta Hueso,
vamos haciendo clic y arrastrando, dibujando los huesos. Debemos de comenzar por el
hueso raz, y seguir por los que cuelgan de este. Por ejemplo, para dibujar un brazo,
haramos clic sobre el hombro y arrastraramos hasta el codo. Volveramos a hacer clic
sobre el el codo y arrastraramos hasta la mueca.
En la siguiente imagen, partimos de un dibujo muy simple hecho con el Pincel, y le
hemos creado un esqueleto.
Podemos crear tantos huesos como queramos dentro de la forma. Si ahora intentas
arrastrar un brazo, vers que el resto del cuerpo le sigue. El inconveniente de la forma es
que puede deformarse y no podremos controlarlo.
Mover ahora nuestro esqueleto es tan sencillo como hacer clic en un fotograma, y
arrastrar los distintos elementos. No necesitamos crear fotogramas clave. Aunque s
veremos que aparece un punto negro en los fotogramas en los que hemos movido el
esqueleto. Lo que hemos creado ah es una Pose.
Al mover un hueso, el hueso del que cuelga le seguir. Si queremos mover nicamente
un hueso por la articulacin que lo une con el hueso del que cuelga, debemos hacerlo con
la tecla Shift (Maysculas) pulsada.
Seguimos creando poses. Si queremos duplicar una pose, podemos hacer clic derecho
sobre ella en la lnea de tiempo, copiarla, y pegarla en el fotograma que queramos.
De esta forma, vamos creando todas las poses necesarias hasta que consigamos el
efecto deseado.
Desde las propiedades podremos recorrer los huesos. Por defecto, los huesos tienen
activada la Union: Rotacin, que permiten que roten. PodemosRestringir el ngulo de
rotacin, por ejemplo para hacer que una rodilla slo se pueda mover hacia atrs, hasta
chocar con el muslo, y no hacia delante, con los valores Min y Max.
Por defecto, los huesos tienen un tamao fijo e invariable, pero podemos hacer que
esto cambie con los valores de Traslacin.
Aunque la cinemtica inversa es una tcnica que con un poco de prctica resulta
sencilla, existen otras formas de crear movimientos complejos, como puedes ver en este
avanzado
23.7. Rotoscopia
La rotoscopia es una tcnica que utiliza un movimiento real como patrn para
calcar las imgenes de la animacin. Hace aos que se utiliza esta tcnica, por
ejemplo, en las pelculas de dibujos animados para conseguir movimientos realistas al
caminar.
Hay varios mtodos para ejecutar esta tcnica, nosotros vamos a hablar del mas
sencillo para utilizar en Flash. Un mtodo ms complejo sera colocar puntos blancos o
luces en diferentes partes del cuerpo de una persona vestida de negro y realizar una
pelcula sobre un fondo negro para luego generar el movimiento a partir de los puntos
captados.
Con una cmara de vdeo podemos grabar el efecto que queremos reproducir, por
ejemplo, una persona caminando,
Luego importaremos el vdeo al formato de Flash, pero esta vez lo haremos de forma
diferente a la que aprendimos en el tema Vdeos.
Del mismo modo deberemos hacer clic en Archivo Importar Importar vdeo y
seguir los pasos que aprendimos entonces, recuerda que los videos que importes deben
estar en formato FLV, si no fuera as puedes cambiarlos a este formato con la
herramienta Adobe Media Encoder que incluye Flash, slo que en la pantalla de
seleccin de mtodo de importacin deberemos seleccionar Incorporar vdeo FLV en
SWF y reproducir en la lnea de tiempo.
Esto har que el vdeo se exporte de forma que lo podremos visualizar fotograma a
fotograma. Sigue el resto de opciones hasta el final y el vdeo se colocar en la lnea de
tiempo.
Luego crearemos una nueva capa por encima y crearemos tantos fotogramas
claves como fotogramas de pelcula queramos copiar. El resto es sencillo, coge
un pincel y a calcar. Cuanta ms precisin consigas, ms impresionantes sern los
resultados.
miClip.graphics.beginFill(color, alfa);
Donde color indicar el color de relleno que se le aplicar al dibujo. Deber estar en
hexadecimal, por ejemplo: 0x000000.
El parmetro alfa indicar la transparencia del relleno.
miClip.graphics.moveTo(x, y);
miClip.graphics.lineTo(x, y);
Esto har que el punto de dibujo se desplace hasta la posicin (x, y), desde donde se
crear el siguiente trazo de dibujo.
?
1
2
3
4
5
6
7
8
miClip.graphics.beginFill(0xFF0000);
miClip.graphics.moveTo(10, 10);
miClip.graphics.lineTo(10, 100);
miClip.graphics.lineTo(100, 100);
miClip.graphics.lineTo(100, 10);
miClip.graphics.lineTo(10, 10);
miClip.graphics.endFill();
1
2
1
2
3
4
5
6
7
8
9