Professional Documents
Culture Documents
por lo que adems de dinamismo, Flash CS3 nos ofrece ahora la posibilidad de ser la plataforma para aplicaciones web de un modo real. Flash es fcil de aprender, tiene un entorno amigable que nos invita a sentarnos y pasar horas y horas creando lo que nos dicte nuestra imaginacin, pero esto no es suficiente para ser el preferido por los diseadores profesionales... Entonces qu es?
Adobe ha querido en esta ltima versin 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 aplicacin muy completas como hemos ido viendo ao tras ao que son capaces de interactuar entre ellas y nos ofrecen la posibilidad de reusar proyectos de un programa en otro. El paso de Flash 8 a Flash CS3 se ha visto marcado sobre todo por esta caracterstica, por lo que su lanzamiento (si no tenemos en cuenta ActionScript 3) quizs no venga acompaado de grandes avances como vimos en el paso de Flash MX a Flash 8. Ahora veremos las mejoras aadidas al programa: Integracin total con archivos de Photoshop e Illustrator: Como veremos ms adelante en la unidad 10, Flash CS3 ofrece una compatibilidad perfecta a la hora de importar archivos creados en Photoshop e Illustrator. De esta forma seremos capaces de incluir en nuestro proyecto este tipo de archivos y modificar y utilizar sus capas y estilos muy fcilmente. Con esta nueva opcin podremos crear composiciones mucho ms compljas, al ser capaces de crear cualquier diseo en uno de estos programas para importarlo ms tarde a nuestro proyecto Flash con un par de clics. Intefaz mejorada: Flash CS3 cambia su interfaz para integrarse completamente en la suite de productos Adobe, ahora todos las ventanas se encuentran en paneles laterales completamente configurables. Podrs mostrar las ventanas que quieras de un modo expandido o minimizado. Flash tambin te permitir guardar y cargar diferentes tipos de configuracin de paneles. As podrs tener tu vista preferida guardada y accesible si en algn momento el espacio de trabajo se vuelve demasiado catico. Herramientas compartidas: La herramienta Pluma se ha adaptado y ahora acta de un modo similar a la existente en Illustrator. Los mismos accesos por combinacin de teclas tambin son accesibles desde Flash. Componentes mejorados: Flash CS3 permite una mayor configuracin en los componentes preinstalados. De esta forma podremos cambiar su aspecto y mostrar controles con diferentes skins. Esta opcin nos permitir crear formularios ms acorde con nuestros diseos, ya no ser necesario mostrar los controles con la apriencia a la que estamos acostumbrados.
Vdeo ms potente: Esta versin de Flash introduce un nuevo compresor de vdeo mejorado que aumenta la calidad y disminuye el tamao del archivo final SWF. Adems se introduce el soporte de capas con transparencia que podrn ser tratadas e importadas desde Premiere sin ningn tipo de problema. Flash CS3 incluye como gran avance ActionScript 3. Esta nueva versin del lenguaje de programacin de Flash supone un gran cambio en la metodologa de trabajo en la creacin de proyectos. En este curso veremos el uso de Flash desde la perspectiva de ActionScript 2 , aunque en la mayora de explicaciones encontrars el cdigo equivalente de la siguiente forma:
ActionScript 3
cdigo
ActionScript 3 supone para Flash un giro en cuanto a posibilidades, potencia y rpidez de ejecuccin. Pero implica un amplio conocimiento de la metodologa de programacin orientada a objetos. Debido a esto y puesto que este curso no pretende ser un manual de programacin nos ajustaremos a la anterior versin, mucho ms sencilla en comprensin y ms accesible para la mayora de usuarios.
Aunque muchos no se hayan dado cuenta, HTML tiene una potencia muy limitada en el tratamiento de textos. De hecho, el principal problema del HTML a la hora de mostrar y distribuir textos por pantalla no suele ser su incapacidad para hacerlo (las posibilidades que permite son ms que suficientes), sino que simplemente se trata de un lenguaje orientado a la organizacin de contenido y no a su tratamiento. Para ello se crearon las Hojas de Estilo en Cascada (CSS en ingls). Su potencia es mucha, y cuentan con la ventaja de que se han convertido en un estndar (aunque siempre habr alguien incapaz de visualizar un contenido que use una hoja de estilo). Adems de permitir administrar los textos e imgenes como queramos por nuestra pgina web, son una forma magnfica de simplificar el cdigo de la pgina web y de acelerar su creacin, ya que como su nombre indica son "Hojas de Estilo", una vez creado el tratamiento que queremos dar a un tipo de texto (por ejemplo, a los ttulos), todos los ttulos que creemos y los identifiquemos como tales, tendrn ese tratamiento (color, tamao de la letra, tipo de fuente...). Gracias a las CSS hemos ganado en control sobre nuestras pginas web, y tal vez en vistosidad y diseo, pero no sirven para crear animaciones. Por qu no usarlas dentro de Flash? Desde la versin 2004 (Flash MX 2004) las hojas de estilo son perfectamente compatibles con Adobe Flash, simplemente porque pueden asociarse con textos empleados dentro de nuestra pelcula sin ms que asignar la hoja de estilo que queramos a la propiedad StyleSheet del objeto texto al que queramos aplicar la hoja de estilo. Por tanto, las CSS han dejado de ser una alternativa al uso de Flash y han pasado a quedar integradas dentro del mismo. Otra ventaja de usar Flash.
El Eterno Debate
Y ante todo esto Qu nos ofrece Flash? Pues Flash es, con diferencia, la herramienta ms potente del mercado para crear contenido multimedia para la web pero presenta tres inconvenientes importantes. El primero es el posicionamiento en los buscadores. Google y otros buscadores no tratan de igual forma las pginas html que las pginas Flash. Las pginas Flash son penalizadas por los buscadores de forma que si el posicionamiento en los buscadores es de vital importancia para la pgina, mejor no hacerla en Flash. Existen tcnicas para paliar esta situacin pero requieren de un trabajo adicional. Tambin es cierto que en las nuevas versiones se va avanzando en este tema y cada vez la penalizacin de los buscadores es menor. El segundo es la compatibilidad con FLASH. Al igual que algunos navegadores no soportan javascript o no pueden ver contenidos DHTML (o incluso CSS), para poder ver FLASH se requiere un PLUGIN especial de la casa Adobe. Un PLUGIN es un programa especial que permite a tu navegador identificar las pelculas FLASH, descargarlas y visualizarlas correctamente. Este PLUGIN es gratuito y puedes descargarlo AQU. Por suerte, cada vez ms navegadores lo llevan incorporado y cada vez ms gente sabe lo que es y no se asusta cuando se le ofrece. As que la gran mayora de ordenadores lo tiene y este aspecto esta dejando de ser un problema. El tercer problema es el tamao que ocupan las pelculas y su tiempo de descarga. Mientras que una pgina HTML puede ocupar unos 10-20 KB como media, una animacin Flash ocupa mucho ms. Evidentemente depende del contenido que tenga, pero suelen superar los 100 KB con facilidad, y si adems incorpora sonidos es fcil que la cifra se dispare. Al ocupar ms espacio, el tiempo que tarda en estar visible el contenido Flash es mayor y no todos los visitantes estn dispuestos a esperar... simplemente, se irn a otra pgina. Por otra parte, las conexiones de banda ancha son cada vez ms numerosas, lo que ellimina el problema del tiempo de descarga, pero el da en el que todo el mundo se conecte a internet a alta velocidad an est lejos, as que el debate seguir abierto mucho tiempo. Otro aspecto a tener en cuenta es la usabilidad de las pginas Flash, a veces se cae en la tentacin de dar demasiada importancia al diseo y olvidarse de que la pgina debe ser fcil de usar.
se
pueden
hacer
pginas
web
realmente
Resumiendo, insertar o no contenido Flash en una pgina web puede ser cuestionable (a da de hoy), aunque depende de muchas cosas, al igual que insertar DHTML, por ejemplo. 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 la creacin de CDs interactivos (como los que incluyen las revistas de informtica, por ejemplo), 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 dejeis de aprender a manejar el programa con ms futuro... (al menos en cuanto a diseo web) Podeis poner a prueba vuestros conocimientos realizando la: Prueba evaluativa del Tema 1.
Realizando la Animacin
En este apartado no pretendemos ensear cmo crear una animacin Flash (pues eso se ver ms adelante), el objetivo es que entendamos cmo crea Flash las animaciones y de que modo nos facilita el trabajo. A primera vista, lo lgico parece ser dibujar la pelota en cada instante del movimiento, de modo que cuantos ms instantes dibujemos, ms real parecer el movimiento. Pues bien, con Flash bastar con crear 3 fotogramas: en el primero dibujaremos la pelota en el instante inicial (arriba del todo), en el segundo se dibujar la pelota en el momento de tocar el suelo y en el tercero la pelota volver a estar arriba (en realidad este tercer fotograma no har falta crearlo, pues bastar con copiar el primero). Por tanto, vemos que el trabajo ms largo (dibujar los objetos) ya est hecho.
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?
Observa como ha quedado: Podeis poner a prueba vuestros conocimientos realizando la: Prueba evaluativa del Tema 2 .
A lo largo de todo el curso trabajaremos con la versin de evaluacin de Flash CS3 en castellano. Podeis descargar esta versin de forma gratuita desde AQU En la imagen se puede ver la interfaz que nos encontraremos la primera vez que abramos el programa Flash. Flash recordar nuestras preferencias y abrir el programa tal y como lo dejamos la ltima vez que lo utilizamos. En esta imagen faltan algunos mens. Todos se irn viendo a lo largo de este curso aunque no aparezcan en esta imagen, que slo pretende mostrar las partes principales de la interfaz de Flash. Veamos cules son:
La Barra de Mens
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: Te 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.... Depurar: Aqu encontrars las opciones de depuracin de la pelcula que te ayudaran a encontrar errores de progrmacin en ActionScrit, entre ellos se encuentran Entrar, Pasar, Salir, Continuar... Ventana: Este men, adems de las opciones clsicas acerca de cmo distribuir las ventanas, incluye accesos directos a TODOS los Paneles y tambin la posibilidad de crear tus propios Espacios de Trabajo, guardalos, cargalos, etc. Ayuda: Desde aqu podemos acceder a toda la ayuda que nos ofrece Adobe, desde el manual existente, hasta el diccionario de Action Script, pasando por tutoriales, lecciones guiadas etc... Veamos un ejemplo prctico del uso de mens, realiza el Ejercicio Crear Guas
La Lnea de Tiempo
La Lnea de Tiempo representa una forma de ver los fotogramas de modo simplificado. Consta de 2 partes.
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 (12.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 .
Las Capas
El concepto de Capa es fundamental para manejar Flash de forma eficiente. Dada la importancia de estas, se le dedicar un tema completo. An as, veamos a grandes rasgos qu son las capas. Una Capa se puede definir como una pelcula independiente de un nico nivel. Es decir, una capa contiene su propia Lnea de Tiempo (con infinitos fotogramas). Los objetos que estn en una determinada capa comparten fotograma y por tanto, pueden "mezclarse" entre s. Esto es interesante a menudo, pero otras veces es conveniente separar los objetos de modo que no interfieran entre s. Para ello, crearemos tantas capas como sea necesario. El uso de mltiples capas adems, da lugar a pelculas bien ordenadas y de fcil manejo (es conveniente colocar los sonidos en una capa independiente llamada "Sonidos", por ejemplo). Las ventajas y desventajas de usar capas se ver en el Tema 8.
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. Coincidir: Provocan que el tamao de la pelcula coincida con el botn seleccionado (tamao por defecto de la Impresora, Contenidos existentes o los elegidos como Predeterminados) 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. Unidades de Regla: Unidad que se emplear para medir las cantidades. Transformar en predeterminado: Este botn, propio de la nueva versin de Flash, 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.
Para practicar estas operaciones te aconsejamos realizar Ejercicio Cambiar Propiedades de la Pelcula
Los Paneles
Los Paneles son conjuntos de comandos agrupados segn su funcin (por ejemplo, todo lo que haga referencia a las acciones, ir en el Panel "Acciones"). Su misin es simplificar y facilitar el uso de los comandos. Estos paneles o ventanas se encuentran organizados en el lateral derecho del rea de trabajo. Pudindose expandir o minimizar con un clic de ratn. Si no estn visibles en el lateral derecho, puedes visualizarlos desplegando el men Ventana y haciendo clic sobre el nombre del panel que quieras mostrar. Para mejorar la experiencia del usuario, Flash permite cargar y guardar tus propias disposiciones de paneles, para que si en algn momento el entorno se vuelve un poco catico puedas recuperar tu configuracin elegida desde el men Ventana. Para ello debers acceder a la opcin Ventana Espacio de trabajo Guardar disposicin de paneles.
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 Para practicar estas operaciones te aconsejamos realizar Ejercicio Acceder a los Paneles Ejercicios del Tema 3. Prueba evaluativa del Tema 3.
Herramienta valo: La herramienta valo permite trazar crculos o elipses de manera rpida y sencilla. Puedes acceder a ella manteniendo el botn del ratn pulsado sobre la herramienta Rectnculo. Para practicar el manejo de esta Herramienta, te aconsejamos realizar Ejercicio Crear valo. Herramienta Rectngulo: Su manejo es idntico al de la Herramienta valo, tan solo se diferencian en el tipo de objetos que crean. 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 equivale a la del lpiz, pero su trazo es mucho ms grueso. Se suele emplear para aplicar rellenos. Se puede modificar su grosor y forma de trazo. Herramienta Cubo de pintura: Permite aplicar rellenos a los objetos que hayamos creado. Al contrario que muchos otros programas de dibujo, no permite aplicar rellenos si la zona no est delimitada por un borde. El color que aplicar esta Herramienta se puede modificar, bien desde el Panel Color o bien desde el subpanel Relleno que hay en la Barra de Herramientas. Herramienta Borrador: Su funcionamiento es anlogo a la Herramienta Pincel. Pero su funcin es la de eliminar todo aquello que "dibuje".
Herramienta Pluma: Crea polgonos (y por tanto rectas, rectngulos...) de un 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 Subseleccionador: Esta Herramienta complementa a la Herramienta Pluma, ya que permite mover o ajustar los vrtices que componen los objetos creados con dicha herramienta. Herramienta Bote de Tinta: Se emplea para cambiar rpidamente el color de un trazo. Se aplica sobre objetos, si tienen borde, cambia al color mostrado de dicho borde, por el mostrado en el Panel Mezclador de Colores (que coincide con el subpanel Colores que hay en la Barra de Herramientas.) Herramienta Cuentagotas: Su misin es "Capturar" colores para que posteriormente podamos
Algunas Herramientas poseen unas opciones especiales que facilitan y potencian su uso. Para acceder a estas utilidades, a veces no basta con hacer clic en la Herramienta correspondiente. La forma de acceder a este Submen consiste en hacer clic en la lnea o en el objeto que has dibujado. Entonces aparecer (o se iluminar si ya estaba presente) un submen como este: Ajustar a Objetos : Se usa para obligar a los objetos a "encajar" unos con otros, es decir, para que en caso de ser posible, sus bordes se superponga, dando la sensacin de estar "unidos". Suavizar: Enderezar: ms rectilneos. Convierte los trazos rectos en lneas menos rgidas. Realiza la labor inversa. Convierte los trazos redondeados en
Tinta: Hace que el trazo sea exactamente el que se realiz con el cursor. Apto para paletas digitales.
El Panel Color
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 la pestaa que est junto a la Herramienta Lpiz y si queremos modificar un relleno, haremos clic en la pestaa que est junto a la Herramienta Bote de Pintura.) Al hacerlo aparecer un Panel con multitud de colores para que seleccionemos el que ms nos gusta. Tambin permite introducir el cdigo del color segn el estndar que establece el HTML. Tambin se puede determinar el tipo de relleno que aplicaremos a los objetos creados (mediante la Herramienta Bote de Pintura). Se pueden crear diferentes tipos de Rellenos Slido: Consiste en un relleno formado por un solo color. Degradado Lineal: Es un tipo especial de relleno, de modo que un color se degrada hasta convertirse en otro. Puede ir de arriba abajo o de un lado al otro Degradado Radial: Es igual que el anterior, pero los degradados tiene forma circular. Mapa de Bits: Permite colocar como relleno alguna imagen
existente en la pelcula (O ajena a ella si antes se "importa") Para aprender a crear un color transparente (semitransparente), realiza el Ejercicio Crear Color Transparente.
El Panel Muestras
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 practicar el manejo de este panel, te aconsejamos realizar Ejercicio Dar color a un valo Ejercicios del Tema 4 Prueba evaluativa del Tema 4.
El Panel Propiedades contiene las principales propiedades de todos los objetos que empleemos durante nuestra pelcula, de modo que si seleccionamos un texto, podremos ver en l todo lo que nos hace falta conocer sobre nuestro texto.
Panel Propiedades
Fuente: Desde aqu, al igual que en los editores de texto ms comunes podemos seleccionar el tipo de letra o "fuente" que ms nos guste.
Espaciado: Determina el espaciado entre los caracteres. til cuando la tipografa que empleamos muestra las letras muy juntas o para dar efectos concretos al texto. Direccin del Texto: Cambia la orientacin del texto de horizontal a vertical, tanto de izquierda a derecha como de derecha a izquierda. Ajuste automtico entre caracteres: separacin entre caracteres se realice de modo automtico. Activar esta casilla provoca que la
URL: 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 ... Tipo de Lnea: Si el texto que vamos a incluir es dinmico (de lo contrario aparece sin activar), esta opcin nos permite determinar cmo queremos que aparezcan las lneas (lnea nica, multilnea o multilnea sin ajuste).
Configuracin: Son las clsicas opciones que permiten convertir el texto en Negrita (B), Cursiva (I), cambiar el color del texto y el tamao.
Otras Propiedades: Dado que Flash trata los textos como objetos, stos tambin tienen anchura, altura y coordenadas. Podemos modificarlos a nuestro gusto, pero debemos
tener en cuenta que los caracteres no deben estirarse sin motivo, pues las tipografas son una parte muy importante y deben respetarse.
Un Prrafo no es ms que un conjunto de caracteres con propiedades comunes a todos ellos. Estos prrafos admiten ciertas opciones que nos permiten trabajar con bloques de texto. El Panel Propiedades nos proporciona las siguientes opciones para trabajar con prrafos (entre otras). A la Izquierda: Todas las lneas empezarn tan a la izquierda como sea posible (dentro del recuadro de texto que hayamos definido). Centrar: Las lneas se distribuyen a la derecha y a la izquierda del punto medio del Prrafo.
A la derecha: Todas las lneas empezarn tan a la derecha como sea posible (dentro del recuadro de texto que hayamos definido). Justificado: El texto se ensancha si es necesario con tal de que no quede "dentado" por ninguno de sus lmites. El resto de opciones nos permiten determinar los mrgenes (izquierdo y derecho), los sangrados de prrafo y el espacio interlineal. Para practicar estas propiedades te aconsejamos realizar Ejercicio Propiedades de texto
Tipos de Textos
Como ya hemos comentado, Flash distingue entre diversos tipos de textos y les da un tratamiento especial, segn el tipo que sean. Todos los tipos de textos responden a las propiedades comentadas en los puntos anteriores, y es en el Tipo de texto en lo que se diferencian. El tipo de texto se puede modificar desde el Panel Propiedades sin ms que haciendo clic sobre la pestaa Tipo de texto: .
Texto Esttico
El Texto Esttico se caracteriza por no presentar ningn cambio a lo largo de la animacin. Es importante que no confundamos la palabra "esttico" con que el texto no se mueva o malinterpretemos la frase "es el texto que no presenta cambios a lo largo de la animacin". Lo que queremos decir es que no cambia el contenido del recuadro de texto, es decir, que el texto puede estar animado (girar, cambiar de color...) y sin embargo ser esttico. As, un recuadro de texto en el que pone "Aprende Flash CS3" durante toda la pelcula, es esttico, aunque dicho texto cambie de posicin, forma o color. Sin embargo, si en ese mismo recuadro de texto pasa a poner "Con este Curso", este recuadro de texto NO es esttico. Se insistir en este punto en los ejercicios de evaluacin. Los textos estticos slo tienen 2 propiedades extras:
Usar Fuentes del Dispositivo: Esta opcin permite que la pelcula Flash emplee las Fuentes que tenga instaladas el usuario que ve la pelcula en su ordenador. Si dicho usuario dispone de las fuentes que hemos utilizado en la pelcula, la ver exactamente como queremos que la vea, pero si no las tiene, Flash emplear la fuente que ms se le parezca. Esto muchas veces lleva a que el resultado final (el que ve el usuario) no se parezca al que pretendamos, por lo que suele ser conveniente mantener esta opcin sin seleccionar, aunque esto conlleve un mayor tamao de la pelcula final. Seleccionable: Con esta opcin activada el usuario podr seleccionar los textos que aparezcan en la pelcula (cortarlos, copiarlos...) Actvala si lo crees conveniente.
Texto Dinmico
El Texto Dinmico en contraposicin al esttico s que puede cambiar su contenido (adems de estar animado). Su uso es bastante ms complejo que el del Texto Esttico, ya que cada recuadro de texto Dinmico puede ser una variable modificable mediante ActionScript, esto quiere decir que los valores y propiedades de este tipo de textos se pueden modificar mediante programacin, lo que nos saca del objetivo de este curso. Un uso comn que suelen tener es el de representar los textos introducidos mediante Textos de Entrada (ver siguiente punto). Tienen multitud de propiedades, accesibles desde el Panel Propiedades, se puede decidir el nmero de lneas que van a tener, se puede introducir texto HTML, se puede aadir fcilmente un borde al texto o dar nombre a la variable que represente al texto Dinmico.
Texto de Entrada
El Texto de Entrada tiene bsicamente las mismas propiedades que el Texto Dinmico, junto con algunas propias de un tipo de texto orientado a la introduccin de datos por parte de usuario, como por ejemplo el nmero mximo de lneas que puede introducir en ese campo de texto o si queremos que lo que el usuario escriba en dicho campo aparezca como asteriscos (para las contraseas). Evidentemente este tipo de texto se reflejar en nuestra pelcula como un recuadro de texto SIN contenido, ya que lo deber introducir el usuario. Como hemos mencionado antes, este tipo de texto se puede combinar con el Texto Dinmico.
Y este es el resultado final: Para aprender a cambiar el tipo de texto, te aconsejamos realizar Ejercicio Cambiar tipo de texto Flash permite crear animaciones de texto tan interactivas como las que pueden crear con imgenes (ya hemos visto lo sencillo que es convertir un texto en un enlace a otra pgina web). An as, crear animaciones con textos, que sobrepasen a las que Flash incorpora por defecto (colores, transparencias, brillos, rotaciones, movimientos o combinaciones de estos) puede resultar un trabajo de muchsimas horas y mucha paciencia. Los resultados son increbles, pero puede resultar recomendable en estos casos usar algunos programas diseados con este objetivo. Entre otros destacan el Swish, el FlaX o el MiX-Fx, con ellos podrs crear efectos de texto asombrosos en pocos minutos, aunque no podrs gozar del entorno de Flash CS3 ni podrs emplear el resto de herramientas de que dispone.
Importar Sonidos
Si alguna vez habeis intentado aadir un sonido a vuestra animacin Flash probablemente os hayais llevado una gran decepcin, no conseguirlo. Esto se debe a que no se tiene en cuenta que para poder emplear un objeto en nuestra pelcula, o bien lo creamos nosotros (como llevamos haciendo hasta ahora) o bien lo conseguimos de cualquier otro modo y lo insertamos en nuestra pelcula. A esto ltimo se le llama "Importar" y se puede hacer con 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.
Se abrir el cuadro de dilogo de Importar a biblioteca. All debers seleccionar en Tipo de archivo Todos los formatos de sonido. Navega por las carpetas hasta encontrar el archivo de audio que quieras incluir en tu pelcula. Seleccionalo haciendo clic sobre l y haz pulsa el botn Aceptar. El sonido estar listo para usarlo donde quieras, podrs encontrarlo en la Biblioteca (men Ventana Biblioteca).
Veamos las partes que tiene este panel. Sonido: En esta pestaa nos aparecern las canciones que tenemos importadas, deberemos seleccionar la cancin que pretendamos aadir a nuestra pelcula (en el siguiente punto veremos cmo insertarlo). 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. Sinc: Esta opcin nos permite determinar en qu momento comenzar a actuar nuestro sonido, estas son las opciones que tenemos: Evento: Sincroniza nuestro sonido con un evento determinado. Es la opcin por defecto y provoca que el sonido se empiece a reproducir al pasar la pelcula por el fotograma en el que est situado. Tambin se puede sincronizar el sonido con botones y los dems tipos de smbolos. Inicio: Su funcionamiento es equivalente al de "Evento", se diferencian en que si est seleccionado Inicio en vez de Evento y se reproduce otra vez el mismo sonido u otro distinto, lo hace "encima" del sonido actual. Puede ser un efecto muy atractivo, o puede provocar que se forme "ruido" en nuestra pelcula. Detener: Detiene el sonido seleccionado. Flujo: Esta opcin sincroniza el sonido con el o los objetos con los que est asociado, por tanto, si la carga de la pelcula es lenta y las imgenes no fluyen adecuadamente, el sonido se detendr para sincronizarse con ellas. Este efecto puede dar la sensacin de que la pelcula se corta de un modo muy brusco (pensar en que se considera normal que una imagen tarde en cargarse, pero si se detiene un sonido mientras se reproduce, produce una reaccin muy negativa en los que pueden estar viendo nuestra pelcula). Por otra parte, es un efecto muy adecuado para algunas situaciones, por ejemplo, el efecto de que un personaje hable durante una pelcula. En esta situacin, es muy recomendable que el sonido y las imgenes estn sincronizadas.
Repetir: Determina el nmero de veces que se reproducir el sonido segn lo que escribas en la caja de texto de la derecha. Tambin puedes seleccionar Reproducir indefinidamente para que el sonido se reproduzca en un bluce hasta llegar al siguiente fotograma clave. No recomendamos insertar sonidos con la opcin Flujo y a la vez la de Repetir, ya que al estar sincronizados los sonidos con las imgenes, provocaramos que las imgenes (y los fotogramas que las contengan) se dupliquen tambin, aumentando considerablemente el tamao de la pelcula.
Insertar un Sonido
Ahora que ya sabemos importar un sonido, qu opciones podemos modificar y para qu sirve cada una. Veamos lo ms importante, cmo insertarlos en nuestra pelcula. Supongamos que queremos insertar un sonido en un fotograma determinado, de modo que cuando la pelcula Flash llegue a este fotograma comience a reproducirse el sonido. Para que un sonido se reproduzca al llegar a un fotograma, deberemos seleccionar el fotograma en el que queremos que empiece a reproducirse el sonido. As representa Flash los sonidos insertados en Fotogramas Una vez all, abriremos el Panel Propiedades e importaremos el sonido que queramos del modo visto en el punto anterior. Otro modo ms rpido an consistira en seleccionar dicho sonido en la Biblioteca y arrastrarlo al fotograma en el que queramos que se empiece a reproducir el sonido (al fotograma, no a la lnea de tiempo). De este modo insertamos un sonido, pero suena tal y cmo queremos que suene? ... Depende de lo que busquemos. Por defecto Flash entiende que quieres reproducir el sonido en su totalidad, sino para qu insertarlo entero?, de modo que Flash reproducir el sonido todas las veces que le hayas indicado en Repetir y el sonido sonar aunque el fotograma en el que est no sea el que se est ejecutando en ese instante. Si quisiramos que el sonido pare cuando entremos en otro fotograma, lo podemos hacer de 2 formas distintas, ambas combinando las opciones que nos ofrece el Panel Propiedades.
La primera de ellas es seleccionarlo en la Biblioteca y arrastrarlo directamente sobre el escenario. El sonido se aadir al fotograma en el que nos encontramos. Otra opcin sera la de seleccionar el sonido (ya importado a nuestra biblioteca) desde el panel Propiedades del fotograma seleccionado:
En la opcin Sonido seleccionaramos el audio que queremos aadir al fotograma. Luego modificaramos la opcin Sinc. del siguiente modo: Si seleccionamos Flujo, el sonido se reproducir hasta llegar al primer fotograma que no lo contenga. Podemos seleccionar Detener para marcar un fotograma de modo que el sonido se detenga al llegar a l.
En esta animacin, vers como: Para practicar la insercin de sonidos realiza el Ejercicio Insertar sonidos.
Editar Sonidos
Flash no fue creado como un editor de sonidos, por lo que su potencia en este campo es limitada. An as, los efectos que permite aplicar de un modo sencillo suelen ser suficientes para cualquier animacin que queramos realizar. Disponemos de estos efectos: Canal Izquierdo: El sonido tan slo se escuchar por el altavoz izquierdo. Canal Derecho: El sonido tan slo se escuchar por el altavoz derecho. Desvanecimiento de izquierda a derecha: El sonido se reproduce inicialmente en el altavoz izquierdo para luego pasar al derecho. Desvanecimiento de derecha a izquierda: El sonido se reproduce inicialmente en el altavoz derecho para luego pasar al izquierdo. Aumento Progresivo: El volumen de nuestro sonido aumenta progresivamente. Desvanecimiento: El volumen de nuestro sonido disminuye progresivamente. Personalizado: Esta opcin nos permite "editar" el sonido de un modo rpido y sencillo. Desde este editor podemos decidir qu volumen tendr nuestro sonido y en qu altavoz. Podemos crear los efectos anteriores ajustndolos a nuestro gusto y podemos crear efectos ms complejos a nuestra medida. Esta es la apariencia del cuadro de dilogo Personalizar Sonido. La parte superior representa el canal izquierdo y la parte inferior el canal derecho. Entre las 2 partes hay una lnea de tiempo que nos indica el tiempo de sonido transcurrido en cada punto. Las lneas grises representan el volumen del sonido y haciendo clic en ellas podemos configurar este volumen. En el ejemplo, el canal izquierdo se reproduce normalmente (pues el volumen est al mximo), pero el canal
derecho empieza en silencio, para poco a poco alcanzar el volumen normal (este efecto equivaldra a un Aumento Progresivo en el canal derecho).
Mp3 o Wav?
Como ya se ha comentado, los sonidos que Flash CS3 puede importar casi cualquier tipo de sonido. Si no sabes las diferencias entre estos tipos de archivos, puedes consultar nuestro tema bsico .
Por tanto, cuando queramos aadir un sonido a nuestra pelcula, deberemos decantarnos por uno de estos 2 formatos. Lo normal es que el sonido que pretendamos insertar ya est en uno de ellos, pero no debemos olvidar que existen multitud de programas que convierten un sonido con extensin .mp3 a uno .wav y viceversa, por lo que no debe ser inconveniente el formato que tenga el sonido en un principio. La pregunta surge en seguida Cul es mejor? ... Esta pregunta es ms importante de lo que parece, ya que si decidimos que nuestra pelcula tenga sonidos, deberemos asumir una carga muy importante en cuanto a tamao de la pelcula y en consecuencia en cuanto a tiempo de descarga. Lo habitual es que los 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. Podeis ver varias pruebas en estas pelculas:
Msica de Fondo
con
sonido
(msica)
en
formato
Total:
Sonido "Voz"
Pelcula . w a v . Tamao
con
sonido
(voz)
en
formato
Total:
Pelcula . m p 3 . Tamao 6
con
sonido
(voz)
en
Total:
K B . Calidad: R e g u l a r
7 K B . Calidad: B u e n a
En el primer caso sera recomendable quedarse con la pelcula ms pequea, ya que ambos sonidos son buenos. En el segundo caso, la segunda pelcula sera ms apropiada, ya que aunque tenga mayor tamao, la calidad del sonido merece la pena.
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 CS3 permite cargar sonidos de un modo dinmico (sin que ocupen espacio), esto se tratar en el Tema 17 "Action Script". Ejercicios del Tema 6 Prueba evaluativa del Tema 6.
color transparente. Para dibujar Rellenos (sin borde) podemos usar herramientas tales como el Pincel o el Cubo de Pintura.
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 para indicar que estn seleccionadas.
Veamos cmo seleccionar las diferentes partes de un objeto: Seleccionar un Relleno o un Borde: Basta hacer clic 1 vez en el Relleno o en el Borde que queramos seleccionar. Seleccionar el Relleno y el Borde de un objeto: Hacer doble clic en el Relleno. Seleccionar todos los bordes (o lneas) de un mismo color que estn en contacto: Hacer doble clic sobre una de las lneas que tenga el color que pretendamos seleccionar. Seleccionar un Smbolo, un texto, o un grupo: Clic en el Smbolo, en el texto o en el grupo. Estos tipos de objetos mostrarn un borde de color azul (por defecto) al estar seleccionados. Seleccionar Varios elementos: Mantendremos pulsada la tecla SHIFT mientras seleccionamos los objetos que queramos. Seleccionar los objetos que se encuentran en una determinada zona : Para ello usaremos la Herramienta Seleccin (Flecha). Haremos clic en una parte del escenario y arrastraremos el cursor hasta delimitar el rea que contenga los objetos que queremos seleccionar. Si esta rea corta algn objeto, 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 Flecha, 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 rectngulares. 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.
El Panel Alinear permite colocar los objetos tal y cmo le indiquemos. Antes de ver las posibilidades, debemos hacer hincapi en la opcin En Escena. 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 quisieramos situar un objeto en la esquina inferior izquierda, bastara pulsar el primer y el sexto botn consecutivamente.
Distribuir: Sita los objetos en el escenario en 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: Hace coincidir los tamaos de los objetos. Si est activo "En Escena" 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 "En Escena" 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 "En Escena" hubiera estado activo ambos cuadrados hubieran pasado a tener el ancho del fotograma.
Espacio:
Para ver ejemplos de uso de estos comandos, podeis ver la animacin situada arriba al principio del captulo.
Panel Informacin
Adems de controlar la posicin de los objetos desde el Panel Alineamiento, tambin podemos hacerlo, de un modo ms exacto (ms matemtico) desde otro panel, el Panel Informacin. A este Panel se puede acceder desde el Men Ventana Informacin. Las posibilidades de este Panel son limitadas, pero si buscamos exactitud en las medidas o no nos fiamos de las distribuciones de objetos que crea Flash, debemos acudir a l.
Medidas del Objeto: Aqu introduciremos un nmero que represente el tamao de nuestro objeto en la medida seleccionada en las Propiedades del documento. An: hace referencia a la anchura y Al: a la altura. Situacin del objeto: Desde aqu controlamos la posicin del objeto en el escenario. La X y la Y representan el eje de coordenadas (La X es el eje Horizontal y la Y el eje vertical). Las medidas tambin van en funcin de las medidas elegidas para la pelcula. Color Actual: Indica el color actual en funcin de la cantidad de Rojo (R), Verde (V), Azul (A) y efecto Alfa (Alfa) que contenga. Este indicador puede ser engaoso, el motivo es que indica el color que tiene el objeto por el que en ese momento pasamos el cursor del ratn. Por tanto, podemos tener seleccionado un objeto (haciendo clic en l) y ver en el Panel Informacin su tamao y su posicin, pero al desplazar el ratn, el valor del color cambiar y ya no indicar el color del objeto seleccionado, sino el del objeto por el que pase el cursor. Tened esto en cuenta para no cometer errores o perder tiempo innecesario. Posicin del Cursor: Indica la posicin del cursor. Es til por si queremos que suceda algo en la pelcula al pasar el cursor justo por una posicin determinada o para situar partes del objeto en lugares especficos.
Los Grupos
Un Grupo no es ms que un conjunto de objetos. Si bien no cualquier conjunto de objetos forman un grupo, ya que para crear un grupo, debemos indicarle a Flash que as 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. 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. 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. Ejercicios del Tema 7. Prueba evaluativa del Tema 7.
Todo el mundo ha visto alguna vez cmo trabajan los dibujantes de dibujos animados. Y todos hemos visto cmo colocan una hoja semitransparente con dibujos sobre otras y la superposicin de todas forman el dibujo final. Por qu no dibujan todo en una misma hoja? Por qu trabajan con varios niveles y con varios dibujos si van a acabar todos juntos? Los motivos son muchos, y estos niveles que emplean los dibujantes, equivalen a las Capas que utiliza Flash. Cada capa es, por tanto, un nivel en el que podemos dibujar, insertar sonidos, textos... con INDEPENDENCIA del resto de capas. Hay que tener en cuenta que todas las capas comparten la misma Lnea de Tiempos y por tanto, sus distintos fotogramas se reproducirn simultneamente. Clarifiquemos esto con un ejemplo:
Supongamos que tenemos 2 capas. En una de ellas los fotogramas del 1 al 10 contienen el dibujo de una portera de ftbol. En la otra los fotogramas del 1 al 5 contienen el dibujo de un portero (del 5 en adelante estn vacos). Pues bien, esta pelcula nos mostrar inicialmente (durante el tiempo que duren los primeros 5 fotogramas) la portera con el portero, para despus (durante los fotogramas del 5 al 10) mostrar la portera sin portero. De este modo la portera es independiente del portero, y podemos tratar estos objetos con total libertad, ya que no interfieren entre ellos para nada.
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).
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 en el icono , 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.
En la primera imagen la capa actual no tiene ninguno de los botones activados, podemos observar que en la columna "Mostrar Capas" aparece un punto. Este punto significa que NO est activada esta opcin, lo mismo sucede con el botn "Bloquear capas". En la columna "Mostrar capas como contornos" aparece un cuadrado CON relleno, lo que simboliza que los objetos se mostrarn completos y no slo sus contornos. En la segunda imagen aparece una cruz situada bajo la columna "Mostrar Capas", lo que indica que dicha capa no es visible en el escenario. Aparece un cerrojo bajo la columna "bloquear capas", lo que simboliza que la capa est bloqueada. Y en la columna "Mostrar capas como contornos" NO aparece relleno. La capa se est mostrando en este modo y no podremos ver los rellenos hasta deseleccionar esta opcin. Adems, el color de los contornos ser diferente para cada capa, de modo que podamos distinguirlas mejor. El color del contorno, coincidir con el indicado en cada capa. En este ejemplo podeis ver cmo queda un objeto en funcin de tener activada o no la opcin contorno:
Tipos de Capas
Como habreis podido comprobar al ver las propiedades generales de una capa o al hacer clic con el botn derecho del ratn sobre el icono de una capa cualquiera, existen varios tipos de capas. Capas normales : Son las capas por defecto de Flash y tienen todas las propiedades descritas en los puntos anteriores. Son las ms usadas y se emplean para todo, colocar objetos, sonidos, acciones, ayudas... Capas Gua : Son capas especiales de contenido especfico. Se emplean en 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
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. Bonito efecto verdad? Capas con Gua (Guided Layers) : Cuando definimos una capa como capa gua, es necesario definir despus 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 aulaClic es, evidentemente, la capa con Gua)
El funcionamiento de las Capas Gua y sus utilidades lo veremos a fondo en el tema de las Animaciones de Movimiento Capas Mscara : Estas capas se pueden ver como plantillas que tapan a las capas enmascaradas (las veremos enseguida). El funcionamiento de estas capas es algo complejo (tampoco demasiado) y se analizar en temas posteriores. Basta con decir que estas capas se colocan "encima" de las capas a las que enmascaran y slo dejan que se vea la parte de stas que tapan los objetos situados en las capas mscara (son como filtros). Al igual que las capas gua, los objetos existentes en este tipo de capas tampoco se ven en la pelcula final. S se vern los objetos de su correspondiente capa enmascarada a los que estn "tapando". Capas Enmascaradas : Estas capas funcionan conjuntamente con las Capas mscaras. 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.
Veamos el funcionamiento de estas capas con un ejemplo. En este ejemplo, los rectngulos azules forman parte de la Capa Enmascarada y por tanto se vern en la pelcula final (pero slo lo que tape la capa mscara). El valo rojo est situado en la capa Mscara y no se ver en la pelcula, pero slo se ver lo que l "tape". As se emplean las mscaras...
Una vez hecho esto nos aparecer una ventana como la mostrada en la imagen. Introducimos el nombre del smbolo que vamos a crear. Esto al principio y mientras tengamos poco smbolos no ser muy importante, pero ms adelante nos servir para hacer referencia al objeto. Slo nos queda seleccionar el tipo de smbolo 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. Bastar con pulsar Aceptar para tener nuestro smbolo creado. Para practicar estas operaciones te aconsejamos realizar Ejercicio Crear Smbolo.
Las Bibliotecas
En Flash CS3 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 la Barra de Mens, Ventana Bibliotecas Comunes y seleccionar alguna de las que se nos ofrecen. Las hay de todo tipo de smbolos: botones, clips o grficos. Para acceder a la lbrera de smbolos de la pelcula que estamos creando de nuevo vamos a la Barra de Mens, Ventana Biblioteca. En esta biblioteca aparecern todos los smbolos que hemos creado hasta el momento. Podemos comprobar como el nuevo smbolo que hemos creado en el ejercicio anterior (Ejercicio Crear Smbolo) se ha aadido a nuestra biblioteca accediendo a ella como acabamos de indicar.
Para utilizar un smbolo de una biblioteca basta con pulsar en el nombre de dicho smbolo y arrastrarlo a cualquier lugar del rea de trabajo. Observa cmo podemos hacerlo.
Los smbolos contenidos en las bibliotecas estn identificados por su nombre y por un icono que representa el tipo de smbolo que representan:
Clip
Botn
Grfico
Como hemos comentado anteriormente, cuando creamos un smbolo, Flash lo almacena en una biblioteca. Pues bien, cada vez que utilicemos ese objeto en una pelcula, ste se convierte en una instancia. Aunque parece que sean lo mismo, la importancia de esta distincin es que cuando utilicemos un smbolo que hayamos creado previamente en una pelcula, al modificarlo se modificar la 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. A la derecha tenis un ejemplo de una biblioteca, en este caso una biblioteca estndar de Flash. Cada elemento de la biblioteca es un
smbolo. Para entender mejor este concepto te aconsejamos realizar Ejercicio Modificar Instancia.
Nombre del Smbolo y su icono correspondiente: El nombre de la instancia es muy importante, pues permite identificarla durante la pelcula. El icono asociado nos permite saber qu tipo de smbolo es de un vistazo rpido. Tipo de Smbolo de la instancia. Por defecto se nos muestra el tipo al que perteneca el smbolo original pero nosotros podemos cambiarlo para que cambie su comportamiento, aunque pueda seguir manteniendo su estructura inicial (en la imagen es "Clip de Pelcula"). Nombre de la Instancia seleccionada (Instancia de:). Esta opcin nos muestra el smbolo raz del que proviene la instancia que estamos modificando. Este smbolo se encuentra en la biblioteca y cada cambio que sufra afecta a todas las instancias que de l se derivan. Intercambiar: Esta opcin merece especial atencin, pues es muy til y nos ahorrar mucho trabajo cuando sea necesaria emplearla. Su funcin consiste en cambiar un smbolo cualquiera por otro que tengamos en nuestra Biblioteca. Puede parecer simple, pero durante el desarrollo de un trabajo profesional rpidamente surge la necesidad de probar situaciones y los diseos grficos definitivos no suelen estar disponibles hasta bien avanzado el proyecto. Gracias a esta opcin podemos trabajar tranquilamente con un "boceto" y sustituirlo de un modo efectivo (el nuevo smbolo hereda las propiedades del antiguo smbolo, incluido el nombre de instancia, las acciones que le afectarn, efectos grficos etc...) cuando llegue el momento. En la imagen se puede observar el panel Intercambiar Smbolo.
Este panel adems, incorpora el botn Duplicar Smbolo cuya funcionalidad es la que nos podemos imaginar. Es muy til cuando queremos hacer pruebas con un smbolo y no queremos perderlo. Lo duplicamos y trabajamos tranquilamente con la copia.
Tipos de Grficos
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.
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.
ESTO ANIMACIN
ES
UNA
(*) 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 .
Ya hemos creado nuestro objeto, vamos a convertirlo en un smbolo grfico lo recuerdas ? Selecciona el objeto, ves al Men Insertar Convertir en Smbolo y convirtelo en un smbolo como ya habamos visto y dndole el nombre "GrficoAnimado"y seleccionando el Tipo Grfico:
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 Editar para modificar el grfico y acceder a su lnea de tiempos. 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)
Crearemos a continuacin nuevos fotogramas clave seleccionando uno a uno los frames nmero 2, 3 y 4 y pulsando F6 cuando los seleccionemos. Pulsa sobre el frame 2 y cmbiale el color de fondo al valo como hicimos antes. Haz lo mismo en los dos siguientes frames.
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 est 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.
Para importar un archivo de Mapa de Bits al escenario haz clic en el men Archivo Importar Importar a escenario.
Se abrir el cuadro de dilogo de Importar, all debers seleccionar el formato de imagen que quieres importar seleccionndolo en el desplegable Tipo. Luego navega por las carpetas hasta encontrarlo. Seleccinalo haciendo clic sobre l y pulsa el botn Abrir. La imagen se incluir en el escenario y estar lista para trabajar con ella.
Si queremos traer un archivo vectorial creado en otro programa, por ejemplo Freehand o Illustrator, podemos hacerlo de manera muy sencilla. Simplemente accedemos al men Archivo Importar Importar a escenario. A continuacin, seleccionamos el tipo de archivo correspondiente al grfico vectorial que queramos importar. Por ejemplo AI de Illustrator. Pulsamos Abrir, y ya tenemos nuestro archivo vectorial. Este archivo s lo podremos modificar internamente ya que Flash es capaz de hacer grficos de este tipo. Concretamente, Illustrator pertenece tambin a Adobe, igual que Flash, con lo que la compatibilidad en este caso es total.
La interfaz de dibujo de Flash, como hemos visto, resulta muy cmoda en determinadas ocasiones para realizar dibujos. As podra interesarnos utilizar Flash CS3 para crear un dibujo y despus utilizarlo en otros programas o para cualquier otro uso. Esto es perfectamente posible con Flash, ya que nos permite exportar un objeto de flash como un bitmap. Eso s, debemos tener en cuenta, como vimos en el tema bsico, 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.
Para exportar un smbolo y guardarlo como una imagen deberemos antes que nada seleccionarlo con la herramienta Seleccin. Una vez seleccionado deberemos hacer clic en el men Archivo Exportar Exportar imagen... y se abrir un cuadro de dilogo.
En este cuadro de dilogo deberemos introducir el nombre del archivo que crearemos y seleccionar en el desplegable Tipo el formato de imagen con el que queremos guardarlo. Una vez rellenados todos los campos y elegida la carpeta donde se guardar el archivo pulsa el botn Guardar y el archivo de imagen se crear y estr listo si quieres incluirlo en una pgina web esttica o modificarlo con cualquier programa de imagen.
Qu es un Clip de Pelcula?
Un Clip de Pelcula o simplemente Clip, es una pelcula en si misma, como cualquiera de las que podamos haber creado hasta el momento en este curso, pero que est incluida dentro de otra pelcula y, a su vez puede contener tambin pelculas insertadas en l. Al igual que los otros tipos de smbolos de Flash, los clips de pelcula tienen su propia lnea de tiempo. Sin embargo, y a diferencia de los Grficos (como veremos a continuacin), esta lnea temporal no est ligada a la lnea de tiempos del documento que lo contiene, de tal forma que su ejecucin es independiente. Este tipo de smbolos puede contener cualquier otro tipo de smbolo: grfico, clip o botn, as como cualquier objeto creado con Flash, ya que un clip es realmente una pelcula. Otra de las ventajas de los Clips la encontramos cuando realizamos pelculas de gran complejidad y tamao, en la que intervienen un nmero muy elevado de fotogramas, debido a que en la vista general del documento, nosotros slo veremos un fotograma por 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 barra de tiempos ms clara y "limpia". Los Clips son una de las herramientas que dan mayor potencia a Flash CS3, 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.
Observa la lnea de tiempos de la pelcula principal y comprueba que slo tiene un fotograma.
Editemos el Clip que insertamos en el documento (doble clic sobre el avin) y examinemos su lnea de tiempos. Aparecer un nico movieclip. Podemos realizar algo similar a lo realizado con los grficos, si bien vamos a crear una Animacin de Movimiento (que se ver en el Tema 13). Nos quedar as
:
Como vemos, la duracin del clip que hemos insertado es mucho mayor que la pelcula nueva que lo contiene. Si el pez fuera un grfico ya hemos visto que si intentramos reproducir la pelcula no ocurrira nada. Veamos qu sucede siendo en este caso un Clip (esto tambin es vlido si la animacin se ha creado del modo visto con los grficos). (Control + Intro). En este caso s que vemos la animacin porque en el momento en que el reproductor ha pasado por el fotograma que contena el clip, ste ha empezado a reproducirse y, puesto que su lnea de tiempos es independiente, ha seguido reproducindose a pesar de que la lnea de tiempos principal haya terminado, y lo continuar haciendo hasta que acabe su lnea temporal propia.
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 marco 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.
Observa cmo hacerlo Cuando estudiemos las animaciones haremos ejemplos de animaciones mediante clips de pelcula y veremos el potencial real de este tipo de smbolos.
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 pelcula debemos abrir primero la biblioteca en la que est contenido. Hemos visto en el tema de Smbolos, dos tipos de bibliotecas: las que estn asociadas a documentos u otras pelculas y las que nos proporciona Flash CS3. 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. Aparecer la biblioteca con la lista de los smbolos correspondientes a los grficos, botones y clips del documento en cuestin.
Es importante destacar que cuando insertemos un clip de una biblioteca, se insertarn a su vez todos los smbolos que contenga, incluidos los clips. A continuacin mostramos un ejemplo en el que veremos cmo importar clips de esta forma adems de comprobar las propiedades de los clips y sus lneas de tiempo independientes mediante la reproduccin simultnea de dos pelculas, creando un efecto bastante vistoso utilizando "aparentemente" un slo frame.
Para ver cmo exportar e importar una pelcula completa como un slo movie clip y poder usar esto para el desarrollo en programas como Swish, revisa nuestro tema avanzado: Otros usos de los Movie Clips . Ejercicios del Tema 11 Prueba evaluativa del Tema 11.
Reposo. Aspecto por defecto del botn, es decir, cuando el puntero del ratn no est situado sobre l. Sobre. Aspecto del botn cuando situamos el puntero sobre l. Presionado. Apariencia que deseamos tenga nuestro botn mientras lo mantengamos pulsado. Zona activa. Aqu debemos indicar el rea real en la que queremos que acte nuestro botn. Esto es importante sobre todo en botones compuestos slo por texto como veremos ms adelante. Parece que la limitacin de fotogramas podra implicar una limitacin en la capacidad de espectacularidad y utilidad de estos smbolos, pero no es as. Los botones pueden contener a su vez otros smbolos, como clips o grficos (tambin de tipo Bitmap). La unin de las posibilidades de todos los smbolos dota a los botones de gran espectacularidad.
Creacin de un Botn
En la creacin de un botn podemos considerar dos fases. En la primera vamos a convertir nuestro objeto a smbolo de tipo botn y posteriormente veremos cmo completarlo internamente, lo que nos ayudar a entender mejor dicha estructura. Primeramente crearemos el objeto que representar el aspecto por defecto de nuestro botn con las herramientas que nos ofrece Flash CS3. Seleccionaremos el objeto y accederemos al men Insertar Convertir en Smbolo, le daremos el Tipo Botn y asignaremos un nombre a nuestro nuevo smbolo.
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 tiempos 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.
Aqu podemos ver una muestra de creacin de un botn ovalado. obtenemos el botn que continuacin mostramos.
Como resultado
Este es un botn muy bsico, como veremos se pueden complicar mucho, pero para empezar nos servir con este. 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 accediendo a la Biblioteca de nuestra pelcula y seleccionando el botn creado. Para ver lo que comentbamos bastar con pulsar la tecla situada a la derecha de la vista previa del smbolo.
Veamos como esto no es siempre tan trivial. Aqu se muestran dos botones creados en Flash CS3. Comprobemos lo que sucede al pasar el ratn por encima de uno y de otro.
Aunque parezcan iguales, la diferencia est en el momento en el que situamos el ratn en uno de los huecos que existe entre letra y letra o, en general, todos aquellos lugares que no pertenezcan al texto propiamente dicho. En el texto de la izquierda el botn se activa slo cuando situamos el puntero del ratn sobre la letra. Esto puede ser incmodo y puede llevar a confusin, ya que aquel que navegue por nuestras pginas simplemente querr hacer uso del botn y no tener que intentar apuntar concretamente a unas letras que quiz sean muy estrechas. Esto es debido al mal uso de la zona activa. Para solucionar este problema sigue los siguientes pasos: 1. Haz doble clic sobre el botn para entrar en su modo de edicin. 2. Haz clic sobre el fotograma de Zona Activa, si no hubiese ningn fotograma clave creado haz clic sobre l y pulsa la tecla F6 para crear uno. 3. Una vez en el estado Zona Activa seleccionamos la herramienta Rectngulo y dibujamos un rectngulo sobre el texto tapndolo en su totalidad. As definiremos toda el rea del rectngulo como zona activa al ratn. 4. Vuelve al modo de edicin normal pulsando el enlace a Escena 1 sobre la Lnea de tiempos.
Comprueba todos los estados del ratn. Por lo que nos dice el botn podemos intuir que empieza algo, pero quiz no tengamos claro qu. Si nosotros en determinado momento no queremos que esto ocurra en nuestras pginas web, podemos recurrir a la introduccin de un Clip en el botn, que explique un poco ms acerca de lo que pasar si pulsamos.
Incluir un Clip en un botn es muy sencillo. Tomando este ejemplo, slo tendrs que, primero, hacer
doble clic sobre el botn para entrar en su modo de edicin. Haz clic en el estado Sobre para modificarlo. Selecciona el texto y pulsa la tecla SUPRIMIR para eliminarlo. Ahora abre la Biblioteca desde el men Ventana Biblioteca donde se encontrar el clip que habremos creado previamente. Seleccinalo y arrstralo sobre el botn. Ya esta listo, ahora cuando pases el ratn sobre el botn el clip de pelcula empezar a reproducirse.
Bitmaps y Botones
Adems de clips, los botones tambin pueden contener smbolos de tipo Grfico. Puesto que, como ya hemos visto, todo lo que se puede hacer con un grfico se puede hacer con un clip, vamos a centrarnos en los Bitmaps que Flash nos permite importar, ya que estn muy extendidos como forma de expresin grfica a lo largo y ancho de la Red. Si consideramos las limitaciones que ya conocemos sobre los mapas de bits puede parecer poco interesante hacer uso de ellos en la creacin de botones, pero no es as. Bsicamente podemos hacer dos cosas: 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 (siempre considerando la mayor sencillez de Flash). 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.
1. 2. 3. 4.
Abre el panel Acciones haciendo clic en su pestaa o desde el men Ventana Acciones. Haz clic en el botn Asistente de script. En el marco de la izquierda haz clic sobre Funciones globales Navegador/Red getURL. Al seleccionar el comando getURL (que se encarga de crear un link a una pgina web) se mostrarn sus respectivas opciones en la derecha del panel. Rellena los campos URL con la pgina a la cual quieres vincular el botn y selecciona en que ventana quieres que se abra el link en el desplegable Ventana (_blank abrir el link en una pgina nueva). Cierra el panel de Acciones y el botn estar listo. Has aadido una accin a tu botn.
5.
Aqu tienes una muestra de cmo hacerlo. Y este es el resultado: 2) Controlar una pelcula en curso. Si estamos reproduciendo una pelcula Flash y queremos permitir que el usuario la detenga, la ponga en marcha, avance, retroceda ... Por ejemplo, para detener una pelcula en curso simplemente debemos hacer que nuestro botn en cuestin aparezca en el escenario de dicha pelcula, seleccionarlo, y abrir el panel de acciones, activando posteriormente la funcin Stop().
Tras hacer esto, se mostrar (igual que en a animacin anterior) el cdigo correspondiente. Observa cmo en ambos casos la accin se sita entre el evento on (release) del botn. Este evento se dispara en el momento en el que el botn deja de pulsarse, es decir, depus de hacer clic cuando soltamos el botn del ratn. Ahora cada vez que presionemos este botn se detendr la pelcula en la que est incluido. De forma muy parecida actuaramos para otras acciones de control. Como vimos al principio del curso, nuestro objetivo es aprender a utilizar Flash utilizando ActionScript 2, mucho ms sencillo y accesible para la mayora de usuarios. En Flash CS3 se incluye la nueva versin del lenguaje de programacin de Flash: ActionScript 3. AS3 supone un giro total en la metodologa de la creacin y programacin de pelculas Flash, por lo que a continuacin detallaremos el cdigo equivalente para recrear lo que acabamos de ver en AS2. Ten en cuenta que en AS3 no es posible asignar cdigo sobre un botn (ni cualquier otro smbolo) por lo que debers emplazar dicho cdigo directamente en el fotograma a partir del cual quieras que el cdigo entre en accin. Para ello selecciona el fotograma en la lnea de tiempo y abre el panel Acciones.
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
Puedes ver el videotutorial de introduccin a ActionScript 3 para comprender mejor los nuevos cambios.
A continuacin veremos distintos tipos de animaciones que el creador de pelculas Flash deber tomar como gua inicial. Cabe destacar que podremos aplicar varias de estas animaciones colocndolas en distintas capas. Con esto es con lo que conseguiremos los efectos ms espectaculares a la par que tiles. Es muy importante tener claro un concepto: no se debe crear animaciones en pginas que no lo necesitan, ni crear animaciones que distraigan al que visualice nuestros documentos de lo
Esto indica que la animacin cambiar la posicin del smbolo del fotograma 1 hasta la posicin del mismo smbolo en el fotograma 20, utilizando precisamente 20 fotogramas. El nmero de fotogramas que se usen en la interpolacin de movimiento indicar las subetapas de que constar la animacin. Cuantas ms subetapas ms sensacin de "continuidad" (menos saltos bruscos) pero a la vez menos velocidad en el movimiento. La velocidad en el movimiento de las pelculas la podemos cambiar tambin modificando su parmetro en la barra de tiempos, comentado anteriormente. pero esto no cambiar lo que hemos
La velocidad est expresada en Fotogramas Por Segundo (fps) y se puede modificar haciendo doble clic en el lugar que hemos indicado de la barra de tiempos. A mayor valor ms velocidad, pero se deben poner siempre suficientes fotogramas para que se desarrolle la animacin como queremos.
En la animacin del tema 1 podrs ver como realizar una interpolacin de movimiento. Mantn en mente que cuando realices una interpolacin de movimiento 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:
Aqu puedes ver como realizar una interpolacin de movimiento Si el objeto con el que queremos hacer la interpolacin de movimiento no est convertido a smbolo nos encontraremos con algo as...
... y la animacin no funcionar. Tambin podemos realizar la interpolacin de otra forma, sin convertir previamente el objeto a smbolo, ya que Flash lo convierte a smbolo automticamente si no lo hacemos, dndole el nombre "Animar" ms un nmero. Basta con hacer clic con el botn derecho sobre el fotograma que contiene nuestro objeto (en la lnea de tiempos) y seleccionar Crear Interpolacin de Movimiento . Despus, al crear un fotograma clave en otro lugar de la lnea de tiempos se crear automticamente la interpolacin, y slo deberemos modificar este ltimo fotograma para producir la animacin. Esto quiz no sea lo ms conveniente en pelculas grandes, debido a lo que ya comentamos de la gran cantidad de smbolos que pueden aparecer y la confusin que crean muchos smbolos con nombres parecidos. Flash tambin nos permite crear animaciones con trayectorias rectilneas en varias fases, con direcciones distintas. Para ello, una vez creada la interpolacin, basta con pinchar en uno de los fotogramas intermedios y crear un nuevo fotograma clave. Si movemos el smbolo en ese fotograma a
otro lugar del escenario y reproducimos, la animacin ir primero a esa posicin y despus a la posicin final. Si hacemos esto varias veces sobre varios fotogramas obtendremos varias trayectorias consecutivas ms. Para entender mejor este concepto recomendamos hacer el Interpolaciones. Ejercicio Encadenar
Y lnea de tiempos que nos queda es algo tan sencillo como esto:
Animacin de Textos
Es indudable que para comunicar algn mensaje, en la mayora de las ocasiones, no basta con imgenes o iconos, y es aqu donde el texto cobra gran importancia. No obstante, se debe tener cuidado con la animacin de los textos, ya que resulta bastante complicado leer un texto que se desplaza o cambia de tamao. Por este motivo, un texto animado debera estar slo en las presentaciones o bien formar parte de una animacin corta y, lo que es ms importante no debera estar reproducindose infinitamente. En las presentaciones, se utilizan multitud de efectos que veremos ms adelante. Sin embargo, con lo visto hasta ahora se pueden obtener efectos interesantes. Una de las opciones ms utilizadas es separar las letras de los textos y animarlas independientemente
Aqu tienes un ejemplo de una presentacin sencilla mediante texto utilizando esta tcnica.
Animacin de Lneas
Una buena animacin no tiene que porqu estar compuesta slo por textos o imgenes
espectaculares. En ocasiones conviene darle a la pelcula un aire ms sencillo o aadir determinados efectos que la hagan vistosa sin necesidad de cargar mucho la pelcula visualmente, y en cuanto a tamao de archivo se refiere. Esto lo podemos conseguir simplemente animando lneas y haciendo que se muevan por el escenario. Esta tcnica nos permite dar dinamismo a la animacin o crear formas distintas a lo largo de su recorrido. Son especialmente tiles y vistosas en fondos oscuros y se suelen usar para formar rectngulos que se aprovechan para insertar imgenes. Aqu podemos ver un ejemplo de este tipo de presentaciones:
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.
Una gua de movimiento es una capa especial que marca una trayectoria para los smbolos de la capa a la que afecta, para que dichos smbolos la sigan, durante el movimiento. Esta capa es invisible durante la reproduccin y permite dibujar cualquier tipo de dibujo vectorial, que nos permitir crear un movimiento no forzosamente rectilneo. Crear un movimiento mediante esta tcnica es bastante sencillo, basta con crear una interpolacin de movimiento en una capa, seleccionarla (debemos asegurarnos de esto para evitar que la gua se asocie a otra capa), y colocar el smbolo del ltimo fotograma al final del trazado que realizaremos previamente en la capa de la gua. No es necesario colocarlos al principio del trazado ya que Flash lo hace automticamente. Vemos como la capa a la que se asocia la gua aparece debajo y alineada a la derecha.
Crear interpolaciones de movimiento guiadas es muy sencillo, Lo primero que debers hacer es crear una animacin de movimiento, para ello: 1. Crea un fotograma clave pulsando F6 e inserta en l el smbolo que quieres que realice el movimiento. 2. Crea un nuevo fotograma clave para marcar la duracin de la animacin, por ejemplo, si creaste el primer fotograma en la posicin 5, crea el nuevo en la posicin 25, as tendrs una animacin que durar 20 fotogramas. 3. Selecciona todos los fotogramas que intervengan en la animacin y haz clic derecho sobre uno de ellos en la Lnea de tiempos. Selecciona la opcin Crear interpolacin de movimiento. Una vez creada la interpolacin y con la capa seleccionada pulsa el botn Aadir gua de movimiento. Se crear una nueva capa asociada a aquella donde tienes creada la animacin. Ahora el procedimiento es fcil, selecciona la herramienta Lpiz y dibuja en la capa gua el recorrido que debe seguir el smbolo. Cuando lo hayas creado selecciona el ltimo fotograma de la animacin y coloca el smbolo en su punto final. Recuerda que el smbolo debe estar siempre en contacto con la lnea de gua tanto en el primer como ltimo fotogramas.
Las consideraciones sobre la velocidad y el nmero de fotogramas que vimos en las interpolaciones de movimiento se pueden aplicar tambin a la interpolacin por forma y a cualquier animacin hecha con Flash. Si hay algn fallo en los parmetros necesarios para que la interpolacin se ejecute bien, como por ejemplo, que uno de los objetos en capa sea un smbolo, se mostrar algo as en la lnea de tiempos:
Para crear una interpolacin de forma debers actuar de forma similar que para crear una de movimiento. Puedes hacer clic derecho sobre los fotogramas o seguir los pasos siguientes: Una vez tengas los fotogramas de inicio y fin de la animacin debers seleccionar todos los fotogramas que participen en ella y abrir el panel Propiedades.
All debers seleccionar la opcin Forma en el desplegable Animar. Y ya habrs terminado. Fcil, verdad?
Podemos observar como realizar una interpolacin por forma pulsando aqu.
Tambin podemos realizar interpolaciones de forma en varias fases de manera anloga a como lo hacamos en el tema anterior. De esta forma podemos hacer que un determinado objeto de convierta en otro antes de adoptar su forma definitiva. Lo hemos conseguido simplemente haciendo clic con el botn derecho sobre el fotograma 10 y creando un fotograma clave ( Insertar Fotograma Clave). Luego slo tenemos que borrar el objeto que aparece en el escenario y dibujar el tringulo.
Transformar Textos
Debido a la importancia de los textos, es importante comentar las aplicaciones que tienen los cambios de forma sobre ellos. Aadimos as una posibilidad ms para realizar logotipos o presentaciones vistosas y transmitir informacin de manera espectacular. Recordemos que para realizar una interpolacin de forma es necesario que el objeto sea de tipo vectorial. Este no es el caso de los textos, que se basan en fuentes y son creados en funcin de los valores de la tabla ASCII y un tipo de letra asociado. Para solucionar este problema, deberemos transformar el texto previamente en un objeto vectorial, es decir, como si hubiramos repasado con la herramienta lpiz el contorno de cada letra.
Posibilidades de esta tcnica en textos? Muchsimas, aunque puede llevar a confusiones si no se hace adecuadamente. Por ejemplo debemos asegurarnos de dar suficientes fotogramas de margen para que se note la transicin. Tambin es conveniente dar un tiempo para que cada letra sea mostrada y pueda ser visualizada y "entendida" por aquel que vea la pelcula, porque si no lo hacemos corremos el riesgo de que la animacin parezca slo un garabato revolvindose. Una de las posibilidades es "deletrear" una palabra de manera tan vistosa como vemos a la izquierda. Podemos comprobar como simplemente cambiando el color del objeto final, se produce una transicin tambin en el color. Observemos a su vez como cuando se forma cada letra, mantenemos su imagen el tiempo suficiente como habamos indicado que era necesario.
Consejos de Forma
Como ocurra en el tema anterior, a veces no nos viene bien el tipo de accin que hace Flash por defecto. En las interpolaciones de movimiento lo solucionbamos mediante la gua de movimiento. En el caso de la interpolacin por forma, es posible que Flash realice la transformacin de los objetos de una forma que no es la que esperbamos y que no nos conviene para llevar a cabo nuestro propsito. Pues bien, para estos casos Flash CS3 nos ofrece una herramienta para solucionarlo: los consejos de forma. Los consejos de forma son marcas que indican a Flash qu puntos de la imagen inicial son los
que deben corresponderse con otros tantos puntos en la figura final. Al indicar esto, estamos controlando las formas intermedias que se generarn. Para aadir un consejo de forma a una interpolacin nos situaremos en el fotograma inicial y pulsaremos Control + Shift + H (o bien ir al men Modificar Forma Aadir Consejo de Forma). 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). Pulsa aqu 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. Ahora realicemos el seguimiento de otro ejemplo, tenemos la siguiente animacin (sin consejos de forma): Vamos a insertar un consejo de forma en el punto indicado en los grficos situados un poco ms abajo: Fijmonos en las posiciones inicial y final del Consejo de Forma y en el seguimiento del mismo, posteriormente comprobaremos que Flash realiza lo que le pedimos:
Punto Inicial
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. El resultado del ejemplo anterior es este. Para practicar estos conceptos realiza el Ejercicio Consejos de forma. Ejercicios del Tema 14 Prueba evaluativa del Tema 14.
En el campo <Etiqueta de fotograma> podemos darle un nombre a la interpolacin que nos ayudar a identificarla en la barra de tiempos. Aparecer a lo largo de todos los fotogramas que la componen. Escalar: 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. Todas las interpolaciones de movimiento que hemos hecho hasta ahora tenan esta opcin activada aunque no lo hayamos indicado expresamente. Flash la activa por defecto, ya que es lo ms normal. De no ser as podramos encontrarnos con una animacin como la siguiente. 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.
Como esta, existen muchas otras aplicaciones. Para comprenderlo mejor recomendamos hacer el Ejercicio Acelerar Movimiento. Girar: Esta opcin es muy interesante ya que nos da la posibilidad de aplicar una rotacin al objeto mientras se produce el movimiento. Para que surta efecto debemos seleccionar el primer fotograma de la interpolacin. Se nos presenta un submen con cuatro opciones: Ninguna. Con esto le indicamos a Flash que no aplique rotacin alguna sobre el smbolo en movimiento. Automtica. 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 y 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 y por eso no hemos visto hasta ahora un objeto rotar en nuestras interpolaciones. Para que hubiera tenido efecto deberamos haber rotado la ltima imagen de la interpolacin. Aqu podemos ver cmo aplicar esta tcnica. Este es el resultado que hemos obtenido, como podemos comprobar, ha recorrido el camino ms corto, ya que el 6 ha pasado progresivamente de su posicin anterior a la que ocupaba el 1 de la otra forma el 6 habra pasado por las posiciones anteriores del 5, 4, 3, 2 y 1, siendo la longitud del movimiento mucho mayor. Antihorario (antes CCMR). Permite realizar el nmero de rotaciones completas en la direccin contraria a la de las agujas del reloj, que le indiquemos en la casilla de la derecha. Tanto si la ltima imagen tiene rotacin como si no. En caso de que tuviera rotacin la imagen final, esta se le aadira. Horario (antes CMR). Realiza lo mismo que la opcin anterior pero en la direccin de las agujas del reloj (hacia la derecha).
Veamos un ejemplo de rotacin a derechas en una interpolacin de movimiento. A la derecha vemos el resultado. Orientar segn trazado: Si activamos esta casilla, cuando la interpolacin sobre la que actuamos es una interpolacin por gua de movimiento, Flash har que el smbolo tome la direccin de la gua, rotando para orientarse en la misma posicin que adopta la lnea. Para entender mejor este concepto, recordemos la ltima animacin del tema 13, en la que el avin haca una especie de "looping". Resultaba un poco extrao ver la animacin porque los aviones no van marcha atrs y, en esta ocasin y en muchas otras, no es conveniente que los objetos se muevan
solo en el escenario quedando el mismo smbolo inmvil, como si levitara. Con este comando solucionaremos esto, y el resultado sera este.
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, deberemos convertir a fotograma clave aquel que contenga la instancia y despus aplicar el efecto.. 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.
Efecto Brillo
El efecto de brillo, como su propio nombre indica, nos viene muy bien para simular el hecho de que algn objeto se encienda o brille, o por el contrario se apague o pierda brillo. En el ejemplo que tenemos a la izquierda, hemos intentado simular este efecto. Para ello hemos creado un semforo de luces intermitentes de color mbar. Como se puede ver, las luces se encienden y apagan progresivamente de manera alternada. Para conseguir esto hemos creado una interpolacin para cada luz, formada por tres fotogramas claves. El tercero lo hemos colocado justo en el medio de la secuencia de fotogramas. A la primera luz y a la ltima le hemos dado el mismo valor de 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 independientes los hemos colocado en distintas capas. e
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: 0 para el primer fot. clave, -46 para el central y 0 para el del medio.
Efecto Tinta
El efecto de Tinta, tiene un amplio marco de posibilidades de uso. Es muy usado en textos y en botones, por ejemplo haciendo que cambien progresivamente de color al pasarles el ratn por encima o simplemente efectos de cambio de color en presentaciones. El tintar colores supone un toque alegre y muy vistosos en las presentaciones y si se usan varios efectos, combinados adecuadamente, dota de un ritmo rpido a la animacin, como una explosin de color que sorprenda al receptor de la pelcula. Otro interesante uso de este efecto es simular la proyeccin de una luz de color sobre un objeto que se va acercando al foco. Veamos un ejemplo de esto. Vemos como al acercarse el avin a la luz roja del Sol, ste lo ilumina con una luz roja. Hemos aplicado a la instancia del avin del ltimo fotograma de su interpolacin de movimiento un efecto de tinte rojo con una intensidad del 60%. Lo mismo hemos hecho en el centro del Sol pero con dos fases, poniendo en el fotograma central un efecto de tinte granate del 25%. La corona solar es simplemente una interpolacin de forma en cuatro fases.
CONSIDERACIONES EN EL DIBUJO:
Aunque los degradados queden muy vistosos, tambin requieren ms memoria, por lo que debemos evitar su uso excesivo, en la medida de lo posible. La herramienta Pincel gasta ms memoria que el resto de herramientas de dibujo, por lo que deberamos elegir estas ltimas en la medida de lo posible. Hemos visto que la animacin de lneas es bastante til. Sin embargo el uso de lneas que no sean las definidas por defecto y que usamos en el captulo que hemos comentado, har que el tamao de la descarga aumente. Por tanto evitemos las lneas discontinuas, de puntos ... Dibujar las curvas con el menor nmero de nodos posible.
CONSIDERACIONES EN LA ORGANIZACIN: Agrupar los objetos que estn relacionados, con el comando Modificar Agrupar. Si hemos creado un objeto que va a aparecer varias veces, deberamos convertirlo a smbolo, ya que como hemos visto, Flash lo colocar en la biblioteca y cada vez que quiera mostrarlo, har referencia a una nica posicin de memoria. Ya hemos comentado el mayor tamao de los mapas de bits, lo que hace que debamos minimizar el nmero de apariciones de stos en nuestra pelcula.
CONSIDERACIONES EN LOS TEXTOS: 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: Utilizar lo ms que podamos las interpolaciones de movimiento y las guas para reducir el nmero de fotogramas clave y el tamao de la pelcula. Evitar el uso de la interpolacin por forma para animaciones de cambio de color, cuando sea posible. Independientemente de la optimizacin que hagamos, a veces no se puede evitar que el tamao de la pelcula aumente. Es recomendable entonces hacer un preloader (precarga) cuando la pelcula que queramos publicar sea de tamao superior a unos 80KB.
Normalmente, los preloaders se hacen vistosos para que el observador no se aburra y deje de lado la opcin de visitar nuestra web. Suelen llevar alguna animacin sencilla que se va reproduciendo mientras se est cargando simultneamente la pelcula principal, mucho ms grande. Se pueden complicar mucho ms, pero nosotros haremos uno sencillo que nos sirva para entender bien el concepto, y la manera de hacerlo. Partimos de que ya tenemos nuestra pelcula terminada. Si queremos saber su tamao podemos ir a Archivo Configuracin de publicacin seleccionar la pestaa Flash, y marcar la casilla Generar Informe de Tamao . Si pulsamos el botn Publicar, aparecer en nuestro directorio un archivo de texto donde se explica con detalle el tamao de nuestra pelcula. 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 "Pelicula" (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 la capa "Accin" disearemos el "corazn" del preloader. Vamos a hacer que la animacin de nuestra escena de carga se ejecute repetidas veces, hasta que se haya cargado la escena que contiene la pelcula principal, mediante las acciones ActionScript 2 de Flash 8. Para ello abrimos el panel de Acciones. Vamos a seleccionar el ltimo fotograma e introducimos la accin gotoAndPlay, que por defecto nos escribir "gotoAndPlay()" y nos situar el cursor en el interior del parntesis para que introduzcamos la escena y el fotograma al que se deber ir al ejecutar dicha accin. En nuestro caso queremos ir al fotograma 1 de la escena "Pelicula", con lo que escribiremos lo siguiente: gotoAndPlay("Pelicula", 1); Ahora seleccionamos el penltimo fotograma, que es el que impedir que se llegue al ltimo (o sea, que repetir el bucle que muestra la animacin "cargando") cuando an no se haya cargado la pelcula por completo. Para hacer esto, elegimos la accin _framesloaded (fotogramas cargados) y la accin _totalframes (fotogramas totales) e indicamos en el panel acciones lo que queremos hacer. Sera algo como "Cuando el nmero de fotogramas cargados sea mayor o igual al nmero de fotogramas totales, entonces comenzamos a reproducir la pelcula" (aunque sea tericamente imposible que el nmero de fotogramas cargados sea mayor que el de fotogramas totales, nunca est de ms incluir esta condicin por si acaso Flash contabiliza internamente los fotogramas de un modo diferente). Podramos escribir algo como lo que muestra la imagen:
Con esto, hacemos que aparezca en la pantalla el texto "cargando" y mientras se reproduce su animacin, iremos comprobando peridicamente si la pelcula principal est cargada por completo, si no lo est seguiremos mostrando el texto "cargando" hasta que la comprobacin que hacemos en el ltimo fotograma nos indique que nuestra pelcula se ha cargado. En ese momento, dejaremos que la animacin del preloader llegue a su ltimo fotograma, que contiene la accin que nos llevar a reproducir 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.
Para poder distribuir pelculas creadas en Flash que la gente pueda ver, son necesarias dos cosas: crear un archivo SWF y que el que la quiera visualizar tenga instalado el Reproductor de Flash. Flash nos ofrece varias opciones y funcionalidades para la creacin de un archivo SWF. Estas opciones se pueden ver en el panel de Configuracin de Publicacin, al que podemos acceder mediante el men Archivo Configuracin de Publicacin (Pestaa Flash). Veamos cules son estas opciones: Versin: Si queremos publicar nuestra pelcula para que sea vista con versiones anteriores de Flash, debemos seleccionar aqu la versin deseada. Orden de Carga: Aqu indicamos el orden en que queremos que se cargue el documento. Si seleccionamos De abajo a arriba se cargar primero el contenido de la capa inferior (de la capa 1 hasta la ltima capa que tengamos en el documento). Por el contrario, si seleccionamos De arriba a abajo se cargar primero el contenido de la capa superior (de la ltima capa que tengamos en el documento hasta la capa 1). Este comando es importante debido a la propiedad de Flash de ir reproduciendo la pelcula conforme los objetos son cargados. As, en caso de que nos interese que aparezcan antes unos objetos que otros
seleccionaremos uno o el otro. Versin de ActionScript: El uso de ActionScript 2 nos permitir usar las novedades relativas a objetos, clases etc... Si nuestra pelcula slo usa acciones sencillas podemos dejar en esta pestaa la opcin ActionScript 1.0 Generar Informe de tamao: Esta opcin la hemos usado en el apartado anterior. Si la activamos, se crear un archivo de texto con una relacin detallada del tamao del documento. Proteger Frente a Importacin: Activando est casilla conseguiremos que cuando otro usuario (o nosotros mismos) queramos importarla no podamos o tengamos que introducir una contrasea si se ha escogido alguna. Omitir acciones de Trazado: Las acciones de traza se emplean para comprobar el correcto funcionamiento de la pelcula durante la creacin de esta (durante las pruebas). Tambin se consideran trazas los comentarios que insertemos en el cdigo Action Script. Si activamos esta seal, la pelcula creada no los incluir, ocupar menos tamao y ahorraremos tiempo innecesario. Es recomendable cuando se publique la pelcula de un modo definitivo. Depuracin Permitida: Permite que se pueda depurar el archivo SWF. Tambin exige la introduccin de una contrasea ya que se debe tener permiso del creador para Importar el archivo y depurarlo. Comprimir pelcula: Comprime la pelcula al mximo posible. Calidad JPEG: Si en el panel de propiedades del mapa de bits no hemos indicado una compresin concreta, aqu podremos determinar su grado de compresin, que determinar a su vez el espacio ocupado en memoria por este tipo de imgenes. A mayor compresin, menos espacio en memoria ocupar la imagen, pero tambin su calidad ser menor. Establecer Flujo de Audio o Evento de Audio: Esta opcin nos permite acceder al Panel "Configuracin de Sonido" desde donde podemos configurar, para cada tipo de sonidos, sus caractersticas. Suplantar configuracin de sonido: Con esto se suplantarn los niveles de compresin seleccionados para cada archivo de sonido de nuestro documento. Para entender mejor este concepto te recomendamos hacer el Ejercicio Publicar SWF
Detectar Versin de Flash: Desde aqu podemos seleccionar si queremos que nuestra pelcula detecte la existencia o no existencia del plugin de Flash en el ordenador del usuario, as como las pginas web donde se insertar el cdigo encargado de comprobarlo y las pginas web a las que se ir en caso de disponer del Plugin o no disponer de l. Dimensiones: Especifica la unidad en la que mediremos las dimensiones del Documento. Anchura X Altura: Aqu introduciremos la anchura y altura, teniendo en cuenta que a veces un objeto ms grande que estas dimensiones provocar un cambio en stas. Reproduccin: Permite realizar determinados cambios en cuanto a la reproduccin de la pelcula: Pausa al Comienzo: Permite que sea el usuario quien haga que se inicie la reproduccin, que inicialmente aparecer detenida. Reproduccin Indefinida: Cuando la pelcula termine, volver a empezar desde el principio. Esto lo har infinitamente. Visualizar Men: Permite que al hacer el usuario clic con el botn derecho del ratn sobre la pelcula, el men emergente tenga todas las opciones por defecto. Si la desactivamos slo aparecer la opcin "Acerca de Flash". Fuentes de Dispositivo: Sustituye las fuentes utilizadas en los textos sin animacin de la pelcula por las fuentes predeterminadas en la mquina de quien la visualice. Calidad: Aqu podemos modificar la calidad de visualizacin de la pelcula, que depende del suavizado de la imagen y el tiempo de reproduccin. Las opciones son: Baja No hay suavizado. El tiempo de reproduccin es el de mxima velocidad. Baja Automtica: El reproductor detecta si la mquina soporta en cada instante un ligero suavizado, si lo soporta, lo aplica. El tiempo sigue siendo muy rpido. Alta Automtica: Pone al mismo nivel el tiempo y el suavizado, pero si hay alguna limitacin, siempre dar preferencia a la velocidad. Media: Valores intermedios de velocidad y suavizado. No suaviza los bitmaps. Alta: Usa siempre el suavizado, los mapas de bits se suavizan slo si no hay animacin. Da preferencia a la buena visualizacin. ptima: Se suaviza todo, incluidos los mapas de bits en cualquier caso. Total preferencia de la apariencia frente a la velocidad. Modo de Ventana: Opciones para la reproduccin dentro de las ventanas de Windows: Ventana: Se reproduce la pelcula en la ventana de la web en la que est insertada. 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. Tenemos varias opciones: Predeterminada: Centra la pelcula en la pgina. Si no cabe se cortan los extremos. Izquierda: Alineacin a la izquierda. Tambin se recortan los bordes si no cabe. Derecha: Alineacin a la derecha. Superior: Alineacin en el borde superior de la pgina. Inferior: Alineacin en el borde inferior de la pgina. Escala: Si hemos especificado el tamao en pxeles o en tanto por ciento, podemos decirle a Flash cmo distribuir la pelcula en el rectngulo que hemos decidido que la contenga: Predeterminada: Se ve toda la pelcula guardando las proporciones originales. 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: Alineacin Horizontal: Podemos escoger entre Centro, Izquierda o Derecha. Alineacin Vertical: Podemos escoger entre Centro, Superior o Inferior. Mostrar Mensajes de advertencia: Permite que se muestren los posibles mensajes de error de cdigo Action Script.
Aqu podemos ver un ejemplo de publicacin de una pelcula Flash para la Web. Ejercicios del Tema 16. Prueba evaluativa del Tema 16.
lenguaje queda por cuenta del lector. Recomendamos seguir la estupenda Ayuda incluida en Flash CS3. Todo lo referente a este captulo hace referencia a la versin 2 de ActionScript , aunque en algunos momentos podrs ver su equivalencia en AS3. Caractersticas generales del ActionScript Como ya hemos comentado, el ActionScript es el lenguaje de programacin propio de Flash, tal y como el Lingo lo es de Macromedia Director, por ejemplo. El ActionScript est basado en la especificacin ECMA-262, al igual que otros lenguajes como Javascript. El 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. El ActionScript 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 un lenguaje puramente orientado a objetos derivado del C o del Pascal como los anteriores, cada versin se acerca ms a un lenguaje de este tipo. As, la versin 2.0 estrenada en Flash MX 2004 es mucho ms potente y mucho ms "orientada a objetos" que su anterior versin 1.0. El ActionScript presenta muchsimos parecidos con el Javascript; si conoce Javascript, la sintaxis y el estilo de ActionScript le resultarn muy familiares. Las diferencias entre ambos lenguajes las puede encontrar en la ayuda que acompaa al Flash CS3. En la mayor parte de las ocasiones, no ser necesario "programar" realmente, Flash CS3 pone a nuestra disposicin una impresionante coleccin de "funciones" (de momento entenderemos "funciones" 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, chadle un vistazo a nuestro tema bsico .
El Panel Acciones
En Flash CS3, el Panel Acciones sirve para programar scripts con ActionScript. Esto es, que todo lo que introzcamos en dicho Panel se ver reflejado despus en nuestra pelcula. Debemos tener claro desde un principio que el Panel Acciones 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. El Panel Acciones se divide en 2 partes, a la izquierda tenemos una ayuda facilitada por Flash que nos da acceso de un modo rpido y muy cmodo a todas las acciones, objetos, propiedades etc... que Flash tiene predefinidos. Estos elementos estn divididos en carpetas, que contienen a su vez ms carpetas clasificando de un modo eficaz todo lo que Flash pone a nuestra disposicin. Para insertarlos
en nuestro script bastar con un doble clic sobre el elemento elegido. Posteriormente veremos con detalle los distintos elementos de este Panel.
A la parte derecha tenemos el espacio para colocar nuestro script, aqu aparecer lo que vayamos insertando. Tambin incluye herramientas de utilidad, como la bsqueda de palabras, la posibilidad de insertar puntos de corte, la herramienta Revisar Sintaxis y la ayuda de Flash para ActionScript. El Panel Acciones de Flash CS3, no tiene nicamente un modo de edicin . La libertad del modo "Experto" es total y por tanto, tambin lo es la posibilidad de comenter fallos, para asegurarnos de que nuestro script es correcto, al entrar en Modo Experto nos aparecer un icono con el siguiente aspecto: Al pulsarlo Flash revisa nuestro cdigo en busca de posibles errores, indicndonos, en su caso, la lnea que presente el error y en qu consiste ste. Es un fallo comn pasarse horas buscando por qu nuestra pelcula no funciona correctamente y que el motivo sea que un error de sintaxis ha invalidado todo el cdigo existente en un fotograma, que actua como si no hubiera NADA DE CDIGO en l. Pongamos pues, mucha atencin en esto y revisemos el cdigo concienzudamente.
El uso del modo en asistente es mucho ms sencillo para ello pulsa el botn Asistente de Script y
selecciona los comandos que quieras incluir, apareceran las opciones que deberas rellenar para que estos comandos funcionen correctamente y el cdigo se generar automaticamente. Esta es una muy buena utilidad recuperada que permitira a los usuarios que acaban de empezar el uso de este lenguaje. Aun as es recomendable siempre repasar el cdigo y as irnos familiarizando con l y de este modo poder poco a poco crear nuestro propio cdigo en modo Experto, lo que nos dar mayor flexibilidad a la hora de crear nuestras pelculas. Para entender mejor este concepto te recomendamos hacer el Ejercicio Panel Acciones.
Los operadores
Entrando un poco ms a fondo en la sintaxis y el manejo del ActionScript, vamos a comenzar hablando de los operadores, por ser la parte ms elemental de una accin de ActionScript (y de muchsimos otros lenguajes de programacin). Un operador es un tipo de carcter que realiza una accin especial dentro de una expresin de ActionScript. Una expresin no es ms que un conjunto de operadores, variables y constantes relacionados entre s de un cierto modo. Flash CS3 sacar un resultado de toda expresin que encuentre en nuestra pelcula. Por ejemplo: x = 3 ; --> Es una expresin cuyo resultado ser asignarle a la variable ' x ' el valor 3 (que es una constante) y = 5 + x ; --> Es una expresin cuyo resultado ser asignarle a la variable ' y ' la suma de la constante 5 y la variable ' x ' que sabemos que vale 3 (porque le hemos asignado este valor antes). Por tanto, el resultado de esta expresin es asignarle a ' y ' el valor 8 (3 + 5). Flash nos permite usar multitud de operadores, vamos a comentar los ms comunes. El lector puede acceder a los dems (y a estos) desde el Panel Acciones en la carpeta Operadores. Vamos a clasificar los operadores tal y cmo lo hace Flash. Operadores Aritmticos + : Suma. Este operador sirve, como es de esperar, para sumar 2 valores. - : Resta. Realiza la operacin esperada de restar 2 valores. * : Multiplicacin. Realiza el producto de 2 valores / : Divisin. Es la clsica operacin de dividir. Al contrario que en algunos lenguajes de programacin, este operador s que realiza la divisin completa (incluyendo decimales) % : Operador Resto. Este operador, no muy conocido en matemtica, es un clsico de la programacin. Devuelve el resto entre 2 nmeros. Ejemplo: 4 % 3 = 1, 4 % 2 = 0. Operadores de Asignacin = : Igual. Este es el operador ms importante de esta categora y sin duda, uno de los ms usados. Almacena el valor situado en la parte derecha de una expresin en la variable situada en la parte izquierda. Ej: x = 2 + 3. Almacena en la variable x el valor de (2 + 3). El resto de operadores de esta categora son en realidad formas de realizar varias
operaciones de una vez, describiremos uno a modo de ejemplo, el resto funcionan exactamente igual. += : MsIgual. Este operador asigna a la expresin situada a la izquierda del operador el valor resultante de sumar la expresin situada a la parte derecha con la expresin de la parte izquierda. Ejemplo: (Suponemos que x = 4 e y = 3) entonces, la expresin x += y provocara que x pasase a valer el resultado de sumar ( 3 + 4 ). Por tanto, la expresin x += y es equivalente a hacer: x = x + y. Operadores de Comparacin == : Probar Igualdad. Este operador sirve para comprobar si 2 expresiones son iguales. Si lo son, el valor de la expresin de comparacin es 'true', que significa 'verdadero'. Por motivos semnticos, decir que una expresin es true es equivalente a decir que vale 1. Si no son iguales, devuelve 'false' (falso) o el valor 0. 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 llamamos "edad_usuario". Le hacemos pulsar un botn "Continuar" y en ese momento comprobamos su edad, si tiene 20 aos, le decimos una cosa, de lo contrario, le decimos otra distinta. Bastara con hacer algo as:
if ( edad_usuario == 20 ) { dar_mensaje_1; } else { dar_mensaje_2; }
Aqu lo que estamos diciendo es lo siguiente: "Si edad_usuario es igual a 20, entonces damos el mensaje 1, sino lo es, 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". > : Mayor que. Devuelve como resultado verdadero (1) si la expresin de la izquierda es mayor que la de la derecha. De lo contrario, devuelve false (0). < : Menor que. Devuelve como resultado verdadero (1) si la expresin de la izquierda es menor que la de la derecha. De lo contrario, devuelve false (0). >= : Mayor o igual que. Devuelve como resultado verdadero (1) si la expresin de la izquierda es mayor o igual que la de la derecha. De lo contrario, devuelve false (0). <= : Menor o igual que. Devuelve como resultado verdadero (1) si la expresin de la izquierda es menor o igual que la de la derecha. De lo contrario, devuelve false (0). != : Probar Desigualdad. Devuelve como resultado verdadero (1) si la expresin de la izquierda es diferente a la de la derecha. De lo contrario, devuelve false (0). Ejemplo: 3 != 4 provocara que la expresin total valdra 1 (true o verdadero). Pues 3 es, efectivamente, distinto de 4. Otros Operadores
( ) : Parntesis. Sirven, como es de esperar, para agrupar trminos y dar preferencias en las operaciones (al igual que en las matemticas). Tambin se usa, como ya vimos, para pasar parmetros a funciones o acciones. (stos deben ir entre parntesis) " " : Comillas. En ActionScript, todo lo que va entre comillas, pasa a considerarse una cadena de caracteres, por lo que las funciones y acciones que afectan exclusivamente a las cadenas de caracteres pasan a afectar tambin al elemento entre comillas. 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. El resto de operadores no se usan tanto, su funcionalidad y definicin puede consultarse en la propia ayuda de Flash.
Las Acciones
Las Acciones son funciones predefinidas de ActionScript, es decir: Flash CS3 las crea, y nosotros slo tenemos que usarlas de la manera que se nos indica. No tenemos que definir las funciones ni nada por el estilo, ni siquiera necesitamos saber cmo estn hechas... Lo importante es que estn listas para usar, lo que facilita el uso de este lenguaje de programacin y sobre todo, haga muy rpido comenzar a programar. Al igual que en el caso anterior, explicaremos las Acciones ms importantes. Para una referencia ms completa, recomendamos mirar la ayuda del programa. Definiremos las acciones escribiendo su cabecera (nombre + parmetros con un nombre genrico) para despus explicar qu es cada parmetro. Acciones - Control de Pelcula 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... Vemoslas y lo entenderemos mejor: gotoAndPlay / goto: Esta accin ser, probablemente la que ms useis durante la realizacin de vuestras pelculas. La accin que realiza consiste en mover la cabeza lectora al fotograma que le indiquemos. La cabeza lectora es lo que determina qu fotograma de nuestra pelcula se est reproduciendo en cada momento. Si, por ejemplo, lo movemos del fotograma 1 al 25, lo que veremos instantneamente ser el fotograma 25 y la pelcula continuar reproducindose a partir de ah. Uso: gotoAndPlay(escena, fotograma): escena: Nombre de la escena a la que queremos enviar la cabeza lectora. Debe ir entre comillas dobles. fotograma: Nmero o nombre del fotograma al que queremos enviar la cabeza lectora. Si es un nombre, debe ir entre comillas dobles, si es un nmero, NO. Ejemplo: gotoAndPlay("Escena2", 7); --> Esta accin lleva la cabeza lectora al fotograma 7 de la escena llamada "Escena2".
Play: Da comienzo a la reproduccin de la pelcula, generalmente porque algo la ha detenido. Uso: Play(); No tiene Parmetros. Stop: Detiene la reproduccin de la pelcula. Se puede usar en un fotograma, cuando queramos detenernos en l (porque es un men, por ejemplo), en un botn, (para que detenga la pelcula) etc... Uso: Stop(); No tiene Parmetros. Acciones - Navegador / Red Estas acciones tiene diversas funciones, describimos las ms importantes: fscommand: Esta accin, es capaz de ejecutar ciertos comandos muy potentes. Lo ms cmodo es pasar a Modo Bsico (sino estbamos ya) e insertarla, nos aparecer una pestaa con los posibles comandos que admite: - fullscreen : Si se activa pone nuestra pelcula a pantalla completa. Muy til para presentaciones en CD-Rom, por ejemplo. - allowscale: Controla el redimensionamiento de los objetos insertados en la pelcula cuando el usuario estira los bordes de la misma (o de la pgina web en la que se encuentre) Queremos mantener las proporciones? Este comando nos permite controlarlo. - showmen: Si has visto el men que aparece al pulsar el botn derecho del ratn sobre una pelcula Flash, seguro que has pensado en hacerlo desaparecer ... puede que no interese que los usuarios puedan moverse a sus anchas por nuestra pelcula. Ejecutando esta sentencia del modo adecuado (false), podremos ocultarlo. - trepallkeys: Sirve para detectar las pulsaciones de todas las teclas durante la reproduccin de nuestras pelculas. Todas estas alternativas, comparten modo de uso, vemoslo: Uso: fscommand("comando","true / false") comando: El comando a ejecutar (fullscreen, allowscale, etc...) true / false: Aqu debemos escribir true o false, segn queramos desactivar la opcin o activarla. Ejemplo: fscommand("fullscreen", "true"); -> Activa la pantalla completa. getURL: Esta accin se emplea para abrir el navegador web y abrir la pgina web que deseemos.
Uso: getURL(url , ventana , "variables") url: Direccin web a la que queremos acceder (se abrir una ventana). ventana: Parmetro OPCIONAL. Modo en el que queremos abrir la ventana (en la ventana actual (_self) en otra nueva (_blank) etc...) variables: Parmetro OPCIONAL, puede haber varios. Si la pgina lo permite (es ASP, PHP etc...) podemos enviarle variables. Ejemplo: getURL("http://www.aulaclic.com", "_blank"); loadMovie / loadMovieNum: Esta accin permite cargar nuevas pelculas Flash o imgenes en nuestra pelcula de forma dinmica (la pelcula se cargar cuando se lo indiquemos, y no antes). Uso: loadMovieNum(url , nivel / destino, variables) url: Direccin absoluta donde est situada la pelcula SWF o la imagen JPEG nivel / destino: Nivel donde cargaremos la pelcula, teniendo en cuenta que el nivel bsico es el 0, luego va el 1 y as sucesivamente. Cada nivel superior se sita delante del anterior y toma el control. Si lo usamos como destino, aqu deberemos introducir el nombre del movieclip donde cargaremos la pelcula o el nombre del marco si estamos cargando un fichero SWF en una pgina HTML con marcos. variables: Parmetro OPCIONAL. Podemos enviar variables. Ejemplo: loadMovieNum("MiPeli2.swf", 0) --> Cargamos la pelcula "MiPeli2.swf" en el nivel principal. No enviamos variables. 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 muchas Acciones, Cmo indicarle a Flash que "si la variable x = 3, entonces vaya al fotograma 5, y sino, vaya al fotograma 10"?. Sabemos comparar, sabemos ir a los fotogramas, pero no sabemos decirle a Flash "Si pasa esto, haz una cosa, y sino, haz la otra...". Veamos cmo decrselo: if ... else: Si partimos de que la traduccin literal de if es " si..." y la de else es " sino ...", nos encontramos de repente con todas las herramientas para decirle a Flash: " si (pasa una condicion) {haz esto} sino {haz lo otro}" Veamos antes que nada su Uso para comprenderlo mejor: Uso: if (condicin) {sentencias1 ... } else {sentencias2 ... } if: Indica que accin que viene a continuacin es una condicional
condicion: Indica una condicion que DEBE cumplirse para que sucedan las acciones indicadas en "sentencias1". Si stas no se cumplen, entonces lo que sucede es lo especificado en las acciones indicadas en "sentencias2". Para que una condicin se cumpla, 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. sentencias1: Conjunto de acciones que sucedern si la condicin se evala como verdadera. Si hay ms de 1, deben incluirse todas ENTRE LLAVES else: Especifica la alternativa si condicion se evala a falso. Es OPTATIVO. Sino existe, y no se cumple la condicin, no se har nada, pues no lo hemos especificado. sentencias2: Conjunto de acciones que sucedern si la condicin se evala como falsa. Si hay ms de 1, deben incluirse todas ENTRE LLAVES Ejemplo: if (x == 2) {gotoAndPlay(6); } --> Si la variable x vale 2, entonces saltamos al fotograma 2, sino, 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.
Los Objetos
Los Objetos, como ya hemos visto en el tema bsico, son instancias de una determinada clase. Esto es, son representantes de una clase ya definida. 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 CS3. 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) y unos Mtodos y eventos, que dan funcionalidad a los objetos. Cuando un componente de Flash pasa a ser un objeto, automticamente pasa a tener todas las propiedades definidas por Flash para ese objeto y pasa a reaccionar ante los Mtodos y eventos que tiene definidos. Podeis encontrar una lista con todas las propiedades, mtodos y eventos de los objetos en el Panel Acciones. Objeto "Button" (Botn) Los objetos de tipo Botn tienen 4 estados, como ya se ha visto en el captulo correspondiente y reaccionan ante mtodos especiales como "OnRollOver", "OnPress" ... que permitirn que sucedan cosas cuando el usuario haga clic sobre estos botones, pase el ratn por encima etc... Cuando nos interese que una imagen que hayamos diseado se comporte como un botn, bastar convertirla a botn (del modo visto en el captulo correspondiente) y ya podremos usar los eventos tpicos de un botn. Objeto "MovieClip" (Clip de Pelcula) Cuando necesitemos crear una pelcula Flash dentro de otra pelcula, pero no queramos tener 2 ficheros separados ni molestarnos en cargar una pelcula u otra, deberemos crear un objeto movieclip. Entre sus propiedades especiales destaca que los objetos "clip de pelcula" tienen, internamente, una lnea de tiempos que corre INDEPENDIENTEMENTE de la lnea de tiempos de la pelcula principal de Flash, lo que nos permite crear animaciones tan complejas e independientes como queramos (podemos crear tantos clips de pelcula dentro de otros como queramos, por ejemplo). Objeto "Sound" (Sonido) Los objetos sonidos no son visuales, y por tanto, no podremos ver como quedan en los fotogramas, al igual que haramos con un botn o un clip de pelcula. Deberemos controlarlos, por tanto, desde el Panel Acciones y usando ActionScript. Tienen multitud de mtodos especiales, muy potentes y tiles, podemos parar un sonido, crear un bucle, darle efectos sonoros etc... Podramos, por ejemplo, crear un objeto de tipo sonido y despus hacer que al pulsar un botn suene. (En el tema siguiente se ver algn ejemplo de uso de sonidos). Objeto "Mouse" (Ratn) El objeto mouse es uno de los objetos de Flash que ya est definido por Flash, pues hace referencia al ratn de Windows (al que manejar el usuario que vea nuestra pelcula). Si lo usamos, podremos acceder a las propiedades del ratn de Windows, tipo de cursos, efectos asociados, deteccin de su posicin etc... Vale la pena insistir en que su manejo NO es anlogo al de otros objetos como el botn, pues podemos crear tantos botones como queramos y hacer con ellos lo que decidamos, pero el objeto Mouse es nico y acta sobre el ratn del PC del usuario que vea nuestra pelcula. Se puede decir que es un objeto "externo" que permite que 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 matmticas 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...
Las Propiedades
Los Mtodos suelen ser especficos de cada objeto, y su estudio requerira un nuevo curso completo, (recomendamos consultar la ayuda incorporada en el Flash CS3 cuando surjan dudas), pero hay bastantes propiedades de los objetos que son comunes a muchos de ellos. Vamos a ver cules son las ms usadas y qu representan. Para usar las propiedades, se debe colocar el nombre del objeto seguido de un punto ( . ) y despus la propiedad y su valor. Las propiedades siempre comienzan con un guin abajo ( _ ). Algunas propiedades se pueden escribir sin el nombre del objeto al que hacen referencia delante, en ese caso, harn referencia a la pelcula principal. _alpha Hace referencia a la opacidad del objeto al que afecte. La opacidad se puede definir como la notransparencia. De modo que un 100% de transparencia equivale a un 0 de opacidad, o a un 0 de alpha. _framesloaded 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
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 estas propiedades) _height Devuelve la altura del objeto en pxeles. Por ejemplo, si tenemos un clip de pelcula llamado "Clip1" y escribimos "Clip1._height" obtendremos la altura de Clip1. Del mismo modo, podemos cambiarla sin ms que hacer: Clip1._height = 100; (la altura del Clip1 pasara a ser de 100 pxeles) _width Propiedad idntica a la anterior, pero devuelve la anchura. _visible Determina si el objeto est o no visible en nuestra pelcula. Cuando vale 1, lo est, cuando vale 0, pasa a ser invisible. Es muy til para hacer desaparecer partes de una pelcula en un momento determinado. Por ejemplo, si queremos que al pulsar un botn desaparezca el clip de pelcula llamado "Clip2", haremos esto: .... ... Clip2._visible = 0; ... .... _x Con esta propiedad obtenemos las coordenadas del objeto respecto del eje de las X. Sirve para averiguar la posicin o para asignarla de forma dinmica (durante la ejecucin de nuestra pelcula Flash) _y Con esta propiedad obtenemos las coordenadas del objeto respecto del eje de las X. Sirve para averiguar la posicin o para asignarla de forma dinmica (durante la ejecucin de nuestra pelcula Flash)
Veremos un ejemplo para utilizar ActionScript y referirnos a las propiedades de los smbolos de nuestras pelculas. Lo primero que debemos hacer es darles un nombre de instancia (al cual nos referiremos cuando escribamos el cdigo). Para ello, y con el smbolo seleccionado abrimos el panel Propiedades.
Remplazamos el texto <nombre de instancia> por un nombre cualquiera que queramos. El objeto estar listo para tratarlo. En el supuesto de que tengamos un rectngulo al que hayamos llamado r1 escribiremos el siguiente cdigo asocindolo a un botn (creado anteriormente) en el panel Acciones para cambiar la anchura del primero:
on (release) { r1._width=350; }
Donde r1 ser la llamada al objeto al cual hemos modificado su nombre de instancia, _width indicar la propiedad que queremos cambiar y 350 determinar el valor que vamos a asignarle a dicha propiedad.
Podeis poner a prueba vuestros conocimientos realizando la: Prueba evaluativa del Tema 17.
on (release) { gotoAndPlay(15); }
Esta accin provoca que al pulsar un botn vayamos directamente al Fotograma nmero 15 de nuestra pelcula. La primera lnea indica a Flash CS3 que "al pulsar el botn" haga lo que est entre las llaves " { ... } ". Este cdigo es caracterstico de los botones y nos permite controlar el pulsado del mismo. Dependiendo de lo que coloquemos entre los parentsis, la accin asociada al botn se producir en un momento o en otro. En este caso, hemos escrito "release" que significa que la accin se producir cuando, tras pulsar nuestro botn, el usuario deje de hacer clic con el ratn. La segunda lnea es la accin que se producir. En este caso, movemos la cabeza lectora de Flash al fotograma 15.
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
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.com La primera lnea tiene la misma funcin que en el caso anterior La segunda lnea es la llamada al navegador web propiamente dicha. Los parmetros indican la direccin URL que queremos mostrar y el modo de ventana que contendr a la pgina web. En este caso, se abrir una nueva ventana independiente de la actual.
ActionScript 3
import flash.events.*; import flash.net.*;
on (release) { 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 tiene la misma funcin que en el caso anterior En la segunda lnea podemos ver la propiedad ._width (anchura), luego esta llamada va a acceder a esta propiedad. Vemos que hay un operador 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.
ActionScript 3
import flash.events.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
Este cdigo AS situado dentro de un fotograma, provoca que nuestra pelcula Flash busque una pelcula llamada "aulaClic.swf" EN LA CARPETA RAZ y la cargue en el nivel 0, es decir, en el mismo nivel que la pelcula actual. La carpeta raz es la carpeta en la que est la pelcula principal (la que tiene este cdigo).
loadMovieNum("mifoto.jpeg", 0);
Este cdigo nos permite cargar en un fotograma una imagen existente en nuestra carpeta raz con extensin .JPEG de un modo dinmico. Por dinmico entendemos en tiempo de ejecucin, lo que significa que el tamao de la pelcula no lo notar, ni tampoco la velocidad de descarga de nuestra pelcula. Slo cuando haga falta ver la imagen y se acceda al fotograma que realice esta llamada, se cargar la imagen y se podr ver en la pelcula. La cargamos en el nivel 0. Si tuviramos la imagen en una carpeta llamada "Imgenes" que se encuentra dentro de nuestro directorio raz, podramos acceder a ella del siguiente modo:
loadMovieNum("Imagenes/mifoto.jpeg", 0);
Es conveniente remarcar tambin, que la imagen debe estar en formato .JPEG, no sirve el formato .JPG.
La siguiente accin debe incluirse dentro de un botn, pues suceder al hacer clic sobre l (de este modo el ejemplo es ms prctico).
on (release) { r1.gotoAndPlay(2);
} Esta accin provoca que al pulsar un botn vayamos al fotograma 2 de un Clip de Pelcula determinado. El fotograma de la pelcula principal NO VARIAR. La primera lnea es la comentada anteriormente La segunda lnea es la accin que se producir. Flash busca un objeto llamado r1 de tipo clip de pelcula (movieclip) y mueve su cabeza lectora hasta el fotograma 2. La cabeza lectora de la pelcula principal es completamente INDEPENDIENTE de la cabeza lectora de los clips de pelcula y no se ver alterada.
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
/* Cdigo 1 */ musica = new Sound(); musica.loadSound("sonido.mp3",false); Estas 2 lneas cargan un sonido y le dan nombre. La primera lnea le dice a Flash que vamos a crear un nuevo objeto de tipo Sonido y que se va a llamar "musica". La segunda lnea carga un sonido de nuestro disco duro llamado "sonido.mp3" y lo carga dentro del objeto musica. El segundo parmetro "false" indica que es un sonido de "evento", y que, por tanto, se cargar completamente antes de comenzar a reproducirse.
/* Cdigo 2 */
musica.stop();
/* Cdigo 3 */
musica.stop(); musica.start(0,99);
La primera lnea como ya hemos visto, detiene el sonido "musica". La segunda lnea provoca que el sonido "musica" comience a reproducirse (start) 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)
/* Cdigo 4 */ musica.stop(); musica.start(0,0); Este cdigo detiene el sonido "musica" y a continuacin lo reinicia, reproducindolo slo 1 vez. Ahora que ya sabemos controlar los sonidos mediante ActionScript, veamos un ejemplo que reune 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
El Mtodo "random" del objeto Math genera un nmero aleatorio entre 0 y 1. En este caso, el resultado lo almacenamos en la variable x, para poder usarlo despus... Las utilidades de este mtodos son muchas, generar claves secretas, passwords, nmeros de loteria etc...
x = Math.round(4,3);
El Mtodo "round" REDONDEA el parmetro introducido eliminando la parte decimal del mismo. 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 no tenemos porqu implementar. Basta buscarlos en el manual y usarlos.
considerable y resulta inviable visionar la pelcula sin tenerla toda cargada (porque 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 insertaremos 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 esplicar el cdigo que escribamos y para eso lo usaremos a continuacin. Les cambiaremos el color para que resalten an ms. Evidentemente no son necesarios en el cdigo que finalmente insertemos en nuestra pelcula. Este es el cdigo que insertaremos: ----------------------------------------------------------------------------/* Fotograma 1 */ bytes_totales = getBytesTotal(); /* Hallamos el tamao de nuestra pelcula con la Accin "getBytesTotal()" y lo almacenamos en la variable bytes_totales. */ ----------------------------------------------------------------------------/* Fotograma 2 */ bytes_cargados = getBytesLoaded(); /* Hallamos los bytes que llevamos cargados en memoria hasta el momento. Este valor lo asignamos a la variable bytes_cargados */ if (bytes_cargados >= bytes_totales) { /* Esta es la lgica del cargador. Si llevamos cargados en memoria los mismos bytes o ms de los que ocupa la pelcula, ejecutamos la siguiente lnea */ gotoAndPlay(4); /* Si hemos llegado hasta aqu es porque toda la pelcula est cargada en memoria (bytes_cargados >= bytes_totales) y podemos comenzar a ver la pelcula. Ejecutamos gotoAndPlay(4) que nos llevar hasta al fotograma donde comienza la pelcula. */ } else { /* Si aun no hemos cargado toda la pelcula */ porcentaje = ((bytes_cargados/bytes_totales)*100); /* Averiguamos el porcentaje que llevamos cargado realizando la divisin entre los bytes_cargados y los bytes_totales y multiplicndolo por 100 */ txt_salida = Math.floor(porcentaje)+"%"; /* Almacenamos en la variable "txt_salida" el porcentaje que llevamos junto al smbolo "%". En la pelcula principal tendremos un campo de texto dinmico llamado "txt_salida" que nos mostrar el porcentaje de pelcula que llevamos cargado en cada instante */ } ----------------------------------------------------------------------------/* Fotograma 3 */ gotoAndPlay(2); /* Si llegamos al fotograma 3 es porque no est cargada toda la pelcula, de lo contrario estaramos ya en el fotograma 4. Como an no est cargada, volvemos al fotograma anterior para ver si ya lo est (mediante gotoAndPlay(2);). Esto lo haremos tantas veces como haga falta para dar tiempo al ordenador del usuario a ir cargando en memoria la pelcula. */ -----------------------------------------------------------------------------
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). A la derecha mostramos el resultado. La pelcula se comenzar a cargar al pulsar el botn. El cdigo insertado es EXACTAMENTE 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 de vuestro ordenador o que esteis viendo este curso desde el CD-Rom o desde vuestro propio Disco Duro, donde la velocidad de descarga estan rpida que sera necesaria una pelcula de varios MBytes para que hiciera falta un cargador. Probad el cdigo en una pelcula que coloqueis en un servidor web y podreis ver los resultados sin problemas. Podeis poner a prueba vuestros conocimientos realizando la: Prueba evaluativa del Tema 18.
Los Botones
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, con el botn seleccionado, abrimos el Panel Acciones y aadiremos el cdigo que deber realizar el botn. sta es la parte ms importante pues deberemos decidir a qu estmulo (o evento) responder el botn. Existen varios eventos que son capturados en Flash, nombraremos los ms importantes:
press: ejecuta la accin al presionarse el botn. release: ejecuta la accin al soltarse el botn (despus de haberlo presionado). rollOver: ejecuta la accin al desplazar el ratn dentro del botn. rollOut: ejecuta la accin al desplazar el ratn fuera del botn.
Por ello, escribiremos en el panel acciones el siguiente cdigo para nuestros botones: on (release) {
Nota: ActionScript diferencia entre maysculas y minsculas , por lo que si escribes, por ejemplo, Release no ser reconocido.
Entre las llaves {} introduciremos el cdigo que queremos que se ejecute al producirse el evento seleccionado sobre el botn. Existen ms manejadores de eventos que puedes revisar en este tema avanzado.
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
function miFuncion(event:MouseEvent):void { }
Observa la capa Contenido. En ella se encuentran todo el contenido de las secciones. De esta forma, si no aplicsemos ninguna accin sobre la lnea de tiempo, todas las secciones se ejecutaran una seguida de la otra . Lo que queremos conseguir es que se ejecute la primera (para mostrar la seccin principal) y el cabezal se pare hasta nueva orden (para mostrar la segunda).
Para ello utilizaremos la funcin stop(). Esta funcin sirve para parar el cabezal de la lnea de tiempo donde sea colocada. As que seleccionamos el ltimo fotograma de la seccin y abrimos el Panel Acciones. All deberemos escribir nicamente la lnea: stop(); Esto har que cuando la animacin llegue a ese punto se detendr a 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().
Ya hemos conseguido detener la presentacin. Pero, cmo hacemos que se muestre la segunda? Muy sencillo. Los botones nos ayudarn a desplazar el cabezal por la lnea de tiempo. As que modificaremos el cdigo de uno de los botones donde habamos escrito: on (release) {
} Para que se pueda leer lo siguiente: on (release) { gotoAndPlay(21); } De esta forma, al hacer clic sobre ese botn, el cabezal de reproduccin se desplazar hasta el fotograma 21 y reproducir a partir de all.
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
Si aadimos un stop() en el ltimo fotograma de la segunda seccin, cuando ste se reproduzca se parar y el contenido permanecer esttico en espera de una nueva orden.
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:
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
prevFrame(), que har que el cabezal retroceda al fotograma anterior al que nos encontramos. nextFrame(), que har que el cabezal avance al fotograma siguiente al que nos encontramos.
Es posible el uso del Panel Comportamiento para crear saltos a fotogramas de forma sencilla y sin tener que escribir ninguna lnea de cdigo, para ver cmo se hace visita este tema bsico.
Existen los controladores prevScene() y nextScene() que hacen avanzar el cabezal a escenas anteriores o siguientes. As que veremos qu son las escenas para poder utilizarlos tambin.
Las Escenas
Flash permite el uso de escenas para separar diferentes temas en una sola pelcula. Se suelen utilizar sobre todo en animaciones, donde una parte de la accin transcurre sobre un fondo y la siguiente sobre otro completamente diferente. De este modo podemos usar las escenas para representar diferentes secciones muy diferentes en nuestra pelcula, por ejemplo, crear una escena para el cargador, otra para la pelcula principal y una tercera para una seccin que se diferencie completamente del resto y nos sea ms cmodo trabajar con ella independientemente. 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:
El uso de escenas obliga al usuario a descargar el documento en su totalidad, a pesar de que es posible que no navegue por todas las secciones. Existe la posibilidad, como veremos ms adelante, de cargar en cualquier momento archivos SWF para reproducirlos en la pantalla principal. De esta forma emularamos el uso de las escenas cargando diferentes documentos dependiendo de la seccin a mostrar. Cuando aadimos ActionScript a nuestras escenas el resultado puede ser, a veces, imprevisible. Como hemos explicado anteriormente, al crearse un archivo con una lnea de tiempo continua las acciones a realizar pueden ser inesperadas.
En el Panel Escena (brelo desde Ventana Otros paneles Escena) podrs ver las escenas actuales de la pelcula.
En principio solamente encontrars una (Escena 1), es posible aadir ms escenas pulsando el botn Aadir escena . Para cambiar el nombre de una escena haz doble clic sobre su nombre en el panel y escribe el que quieras. Puedes eliminar una escena utilizando el botn Eliminar escena botn Duplicar escena . 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. Pero veamos cmo podemos utilizar ActionScript para desplazarnos de escena a escena. Antes hemos mencionado las funciones prevScene() y nextScene(). Estos comandos hacen que el cabezal de reproduccin se desplace de una escena a otra en el orden en el que se encuentran en el Panel Escena. Pero existe otra posibilidad. Segn el ejemplo que estamos siguiendo creamos una nueva escena llamada escena_otros. En el botn Otros Restaurantes hemos aadido el siguiente cdigo: on (release) { gotoAndPlay("escena_otros", 1); }
ActionScript 3
import flash.events.*;
miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
Con esto estamos indicando que al soltarse el botn el cabezal se desplace al fotograma 1 de la escena escena_otros y empiece a reproducirse a partir de all. Sencillo, verdad?
Los MovieClips
En el tema de Clips de Pelcula vimos que se tratan de objetos con lnea de tiempo propia. Podemos utilizarlos para incluir elementos en nuestra pelcula con una animacin independiente. De este modo aunque la pelcula principal est detenida el clip seguir actuando segn su propio cabezal de reproduccin. Existen mtodos para manejar la lnea de tiempo de los clips, idnticas a las anteriores, y que veremos a continuacin. Lo primero que deberemos aprender es a acceder a las propiedades y mtodos de los objetos. Esto es un recurso muy utilizado pero a la vez es muy sencillo. Lo veremos con un ejemplo. Queremos que al pulsar un botn el movieclip avance en su lnea de tiempo hasta su fotograma 20. El cdigo que deberemos escribir en el botn ser el siguiente: on (release) { miClip.gotoAndPlay(20); } Fjate en cmo hemos escrito la funcin. Primero hemos sealado el clip sobre el que queremos actuar escribiendo su nombre de instancia:
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
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: on (release) { miClip._visible = false; }
ActionScript 3
import flash.events.*; miBoton.addEventListener(MouseEvent.CLICK, miFuncion);
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:
clipPadre.clipHijo.play(); As haremos que la reproduccin de clipHijo se reaunde. Pero, qu pasa si queremos ejecutar la orden desde dentro de clipPadre? Imagina que dentro del movieclip hay un botn y el clip clipHijo. Queremos que al pulsar el botn se reproduzca el fotograma 20 de clipHijo, entonces deberamos escribir lo siguiente en las acciones del botn: on (release) { 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 a elementos superiores utilizando la palabra reservada _parent. De este modo si nos encontrsemos dentro de clipHijo y quisisemos avanzar al fotograma 20 de clipPadre deberamos escribir: 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.
Por lo dems, el funcionamiento de un clip no se diferencia en nada a la lnea de tiempos de cualquier otra pelcula. Podemos etiquetar los fotogramas de igual modo para llamarlos directamente por su nombre: 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 que nos permitirn ejecutar cdigo dependiendo de los eventos que se produzcan sobre ellos. Los que ms utilizaremos sern:
mouseMove: se ejecuta cuando el ratn se mueve sobre el fotograma. Puedes utilizar las propiedades _xmouse e _ymouse para averiguar la posicin del ratn en ese momento. mouseDown: se ejecuta cuando se presiona el botn del ratn. mouseUp: se ejecuta cuando se suelta el botn del ratn. keyDown: se ejecuta cuando se presiona una tecla. keyUp: se ejecuta cuando se suelta una tecla.
Estos manejadores de eventos se deben de utilizar con el controlador onClipEvent. Veamos un ejemplo: onClipEvent (mouseUp) {
this._visible = true; } Este bloque de cdigo debe situarse en las acciones del movieclip (igual que hacemos con los botones). Es por ello que al referirnos a la propiedad _visible escribimos antes this para referenciar el clip en cuestion. this siempre har referencia al objeto donde se encuentre la variable. Nota: Estos manejadores son tan vlidos para movieclips como para la pelcula general en s, pues podramos considerar que una pelcula es un movieclip ms grande.
Tambin existen modos de capturar estos eventos sin tener que escribir el cdigo dentro del movieclip. Sera de la siguiente forma: miClip.onPress = function() { miClip.play(); } Estos eventos tienen que asociarse con una funcin (veremos este concepto en el punto siguiente). Pero de esta forma podemos escribir el cdigo directamente sobre el fotograma y controlar cuando se ejecuta una accin sobre el movieclip. En el ejemplo, el clip comenzar a reproducirse en cuanto se haga clic sobre l. Veamos el conjunto de eventos ms importantes para los movieclips:
onPress = function() {}: se ejecuta cuando se presiona el botn del ratn sobre el movieclip. onRelease = function() {}: se ejecuta cuando se suelta el botn del ratn sobre el movieclip. onRollOver = function() {}: se ejecuta cuando se desplaza el ratn dentro del movieclip. onRollOut = function() {}: se ejecuta cuando se desplaza el ratn fuera del movieclip. onKeyDown = function() {}: se ejecuta cuando se presiona una tecla con el clip de pelcula resaltado. onKeyUp = function() {}: se ejecuta cuando se suelta una tecla con el clip de pelcula resaltado.
Obviamente, existen muchos ms eventos que podrs aprender en este tema avanzado.
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: estrella.onPress = function() { estrella.gotoAndPlay("desaparece");
detalle.gotoAndPlay("aparece"); }
ActionScript 3
import flash.events.*; estrella.addEventListener(MouseEvent.CLICK, funcion_desaparece);
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: detalle.onPress = function() { estrella.gotoAndPlay("aparece"); detalle.gotoAndPlay("desaparece"); } 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.
ActionScript 3
import flash.events.*; detalle.addEventListener(MouseEvent.CLICK, funcion_aparece);
function funcion_aparece(event:MouseEvent):void {
estrella.gotoAndPlay("aparece"); detalle.gotoAndPlay("desaparece"); }
Las Variables
Las variables son contenedores donde podremos almacenar informacin para trabajar con ella. Esta informacin puede ser modificada y leda. Aunque parece un concepto muy complejo su uso es bastante sencillo. En ActionScript existen 8 tipos diferentes de variables, los que ms utilizaremos sern los siguientes:
Boolean: o booleano, puede almacenar slo dos valores, o true (verdadero) o false (falso). Number: puede almacenar nmeros enteros o decimales, positivos o negativos. El signo decimal en ActionScript es el punto (.). Podrs realizar operaciones matemticas con estas variables. String: puede almacenar cadenas de caracteres, es decir, un conjunto de caracteres alfanumricos. Las variables de tipo String deben ir entre comillas dobles (").
Para declarar (crear) una variable slo tendrs que escribir la siguiente lnea: var nombreVariable:tipoVariable = valorVariable;
Veamos el ejemplo para verlo ms claro. Haremos que el clic sobre el movieclip estrella slo se ejecute si el detalle no est an mostrado. Y al revs. Que slo se ejecute el cdigo al hacer clic en el detalle si ste se encuentra fuera. var estrella_activada:Boolean = true;
detalle.onPress = function() { if (estrella_activada == false) { estrella.gotoAndPlay("aparece"); detalle.gotoAndPlay("desaparece"); estrella_activada = true; } } Fjate en las dos primeras lneas, se declaran dos variables booleanas. Una dice que la estrella se encuentra activada y la otra que el detalle se encuentra desactivado.
ActionScript 3
import flash.events.*; var estrella_activada:Boolean = true;
estrella.addEventListener(MouseEvent.CLICK, funcion_desaparece); function funcion_desaparece(event:MouseEvent):void { if (estrella_activada == true) { estrella.gotoAndPlay("desaparece"); detalle.gotoAndPlay("aparece"); estrella_activada = false; } } detalle.addEventListener(MouseEvent.CLICK, funcion_aparece); function funcion_aparece(event:MouseEvent):void { if (estrella_activada == false) { estrella.gotoAndPlay("aparece"); detalle.gotoAndPlay("desaparece");
estrella_activada = true; } }
Al hacer clic en el movieclip estrella se evala la variable estrella_activada si sta es verdadera (true) entonces permite que se realicen las acciones. En caso contrario, sale de la condicin. Al entrar en la condicin se desplazan los cabezales y se modifica el valor de la variable a falso para que la prxima vez que intente entrar no puedan ejecutarse las acciones. En el onPress 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. Puedes abrir este panel desde Ventana Salida.
Las variables declaradas en la lnea de tiempo pueden utilizarse en cualquier fotograma posterior y su contenido se mantendr intacto. Por ejemplo, declaramos la siguiente variable en el fotograma 1: var miVariable:String = "Esta es mi variable"; Y en el fotograma 15 colocamos las siguientes lneas en el Panel Acciones: trace(miVariable); stop(); Vers como al probar la pelcula en el Panel de Salida aparece escrito el contenido de la variable. 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: function miFuncion() { var miVariable:Number = 1; trace(miVariable); miVariable = 2; trace(miVariable); }
miFuncion();
trace(miVariable); En el primer bloque definimos una funcin (hablaremos de ellas ms a fondo en el siguiente apartado). En esta funcin se declara una variable y se enva su contenido al Panel Salida. Luego modificamos el contenido de la variable y volvemos a enviar el contenido a Salida. Observa que despus llamamos a la funcin, esto har que se ejecute su cdigo, por lo que en el Panel Salida se mostrar 1 y 2. Luego intentamos enviar el contenido de la variable a Salida y el resultado que obtenemos es undefined. Esto es porque la variable no est definida, pues solamente la habamos declarado para el bloque de la funcin. Utilizando las variables de esta forma slo podremos acceder a ellas desde el bloque de funcin donde estn declaradas. Una vez fuera de ste las variables dejan de existir.
Las variables de mbito global son mucho ms flexibles, estn disponibles en cualquier fotograma y funcin. Su modo de declaracin es la siguiente: _global.miVariable = "Esta es una variable global"; Podrs acceder a ella en cualquier momento. Las variables globales no tienen tipo, y pueden tomar cualquier valor . Nota: Si en algn sitio declaras una variable local con el mismo nombre que una variable global existente no podrs utilizar la global durante todo el mbito en el que exista la local.
Comentaremos tambin la existencia de las variables de tipo matriz (o array). stas pueden almacenar diferentes variables en un solo objeto.
Veamos un ejemplo para verlo ms claro: var miMatriz:Array = new Array(); miMatriz[0] = "Lunes"; miMatriz[1] = "Martes"; miMatriz[2] = "Mircoles"; miMatriz[3] = "Jueves"; miMatriz[4] = "Viernes"; miMatriz[5] = "Sbado"; miMatriz[6] = "Domingo"; As si escribimos: Trace(miMatriz[5]); Se mandar al Panel Salida el elemento 5 del array miMatriz en este caso Sbado. Los arrays empiezan por 0, as que es conveniente que te acostumbres a rellenar la matriz a partir de este elemento. Vers que con el tiempo te ayudar a realizar algunas funciones. Otras formas de declarar arrays son las siguientes: var matriz2:Array = new Array("Lunes","Martes","Mircoles","Jueves","Viernes","Sbado ","Domingo"); o var matriz3:Array= ["Lunes","Martes","Mircoles","Jueves","Viernes","Sbado","Do mingo"]; Puedes ver un ejemplo prctico de los arrays en este apartado bsico.
Las Funciones
Como habrs visto en los ejemplos anteriores, una funcin es un bloque de cdigo que podemos utilizar en cualquier parte del archivo SWF con slo llamarla: function miFuncion() { var miVariable:Number = 1; trace(miVariable); } En este ejemplo hemos creado una funcin que enva el contenido de la variable miVariable al Panel Salida.
Podemos escribir la siguiente lnea en cualquier momento despu de haber pasado la funcin y esta se ejecutar: miFuncion();
Como ves, crear funciones es bastante sencillo. Adems podemos crear funciones un poco ms complejas envindole parmetros: function enviaSalida(miVariable:String) { trace(miVariable); } Si en cualquier momento escribimos: enviaSalida("Hola!"); Se mostrar el mensaje en el Panel Salida. El modo de crear funciones con parmetros es bastante intuitivo. Al crear la funcin debers indicar que tipo de variable le vas a enviar. En nuestro ejemplo hemos definido el parmetro como de tipo String. De este modo podrs utilizar la variable miVariable dentro de la funcin y trabajar con ella como quieras. Para llamar a la funcin slo debers escribir su nombre y indicarle el parmetro que le quieres enviar. Puedes crear funciones con ms de un parmetro, para ello slo tendrs que separar stos por comas: function miFuncion(parametro1:String, parametro2:Number, parametro3:Boolean) { // cdigo }
miFuncion("hola", 2, false);
Cargando Archivos
Una vez vistos todos estos conceptos pasaremos a ver una funcin en concreto, la funcin LoadMovie. Esta funcin te permite modificar el contenido de un clip de pelcula y cargar en l otro archivo SWF o incluso una imagen con formato JPG, GIF o PNG . Su uso es el siguiente: miMovieClip.loadMovie("pelis/clip.swf"); Con esto lo que hemos hecho es cambiar el contenido del clip miMovieClip y lo hemos sustituido por el archivo clip.swf que se encontraba en la carpeta pelis. Es sencillo, verdad?
Tambin puedes utilizarla de esta forma: loadMovie("archivo.swf", miMovieClip); Es una variacin de la anterior, aqu indicamos qu archivo queremos cargar y dnde. Si en vez de cargarlo en miMovieClip lo cargasemos en this se cargara en el clip en el que est contenida la funcin. Incluso si ste es el clip de pelcula principal.
Vamos al ejemplo. En la seccin Encuntranos hacemos clic en un botn de tipo texto y nos aparece el mapa donde localizar el restaurante:
El cdigo que hemos insertado en el botn es sencillo: on (release) { loadMovie("mapa.swf", this); } Los parmetros que le hemos pasado son el nombre de la pelcula a cargar y su destino (this, el propio clip donde estaba el botn). Una lnea equivalente hubiese sido esta: this.loadMovie("mapa.swf");
Para descargar archivos cargados con la funcin loadMovie utiliza unloadMovie. Esto nos servir para liberar a un movieclip de la pelcula o imagen que habamos cargado, dejndolo vaco. Su sintaxis es la siguiente: miClip.unloadMovie(); o unloadMovie(miClip);
Existe la posibilidad de cargar archivos de otra manera, en vez de indicando su destino indicaremos su nivel. Esto es, vamos a cargar varios archivos en un mismo sitio y los dispondremos uno encima de otro, de forma que los que se encuentren en capas superiores taparn a los de abajo. Para ello deberemos utilizar la funcin loadMovieNum: loadMovieNum("primera.swf", 0); loadMovieNum("segunda.swf", 1); loadMovieNum("tercera.swf", 2); En este ejemplo hemos cargado 3 archivos SWF en el mismo sitio. Los tres estarn disponibles a la vez, pero la pelcula tercera.swf ser la que se encuentre en el nivel superior. Como puedes ver, al no poder indicarse un destino, debers introducir esta funcin dentro del clip que quieres modificar. Si fuese escrita en el cdigo del fotograma actuara directamente sobre la pelcula principal. Nota: Las pelculas cargadas en el nivel 0 sern las que establezcan la velocidad y tamao de fotogramas y su color de fondo para el resto de los fotogramas aadidos en niveles superiores.
Podemos referirnos a pelculas cargadas en diferentes niveles y modificar sus propiedades utilizando la sintaxis: _level1._visible = true; E incluso llamar a objetos contenidos en esas pelculas aadiendo, simplemente, el nombre de instancia de ste: _level1.miClip._visible = true; Sigue el siguiente ejercicio paso a paso para ver cmo hacer una Pelcula con Niveles
Podemos descargar pelculas cargadas con la funcin loadMovieNum utilizando unloadMovieNum: unloadMovieNum(2); En esta funcin slo debemos indicar el nivel donde est situada la pelcula que queremos descargar y cada ms.
El uso de estas funciones es bastante sencillo y te ayudarn mucho en la eficiencia de tus pelculas. Ten en cuenta lo que decamos antes de las escenas. Si creamos una pelcula con varas escenas se almacenarn todas en un solo archivo, y el usuario tendr que descargarse el archivo entero para poder ver aunque sea una parte mnima de la pelcula. Utilizando estas funciones podemos optimizar el tiempo de descarga, pues de este modo el usuario slo se descargar los archivos que desee visualizar.
Cargando Informacin
En este apartado veremos cmo utilizar un cargador para recoger informacin de un archivo y mostrarla en una pelcula Flash. Nos basaremos en el siguiente ejemplo:
En la capa de acciones escribiremos todo el cdigo para que funcione la pelcula. La capa diapositivas contiene el efecto que hace que la imagen se desvanezca para volver a aparecer. Ahora explicaremos cmo lo hemos hecho. Antes que nada aadimos un stop() en el primer fotograma para detener la accin y reanudarla ms tarde con el botn al que le hemos aadido el siguiente cdigo: on (release) {
gotoAndPlay (2); } Para que pase al fotograma dos y comience la transicin. Igualmente hemos aadido un stop() en el fotograma 11 para que se detenga la transicin y espere a que se pulse de nuevo el botn y vuelva al fotograma 2. La transicin es muy sencilla. En la capa diapositivas hemos aadido un clip de pelcula llamado contenedor del tamao de la pelcula, que ser donde carguemos las imgenes con la funcin loadMovie, y hemos incluido dos interpolaciones de movimiento. En el fotograma 6 bajaremos la propiedad Alfa al 0% en el Panel Propiedades. As conseguiremos el efecto de la transicin. Mientras en el fotograma 6 aadiremos el cdigo que har que se cargue la imagen en contenedor y se actualicen los campos de textos descripcion_txt y titulo_txt incluidos en la capa area_texto en un clip llamado textoDiapositiva.
Ahora que conocemos el funcionamiento veamos el cdigo que hemos aadido en los fotogramas 1 y 6. Fotograma 1: stop();
var cargador:LoadVars = new LoadVars(); cargador.onLoad = function(exito:Boolean) { if (exito) { textoDiapositiva.descripcion_txt.text = eval("cargador.descripcion" + imagenActual); //recupera la descripcin
textoDiapositiva.titulo_txt.text = eval("cargador.titulo" + imagenActual); //recupera el ttulo } else { textoDiapositiva.descripcion_txt.text = "No se ha podido cargar el texto"; textoDiapositiva.titulo_txt.text = "Error"; } }
cargador.load(archivo); //carga del texto loadMovie(matrizImagenes[imagenActual-1], contenedor); //carga de la imagen En las primeras lneas definimos las variables que vamos a utilizar.
En la variable archivo introducimos la ruta del archivo de tipo txt de donde sacaremos el texto asociado a las imgenes. La variable total almacena el nmero total de imgenes que vamos a mostrar. La variable imagenActual almacenar el nmero de la imagen que vamos a mostrar, la inicializamos a 1 para mostrar primero la primera imagen. La variable matrizImagenes es una variable de tipo array y almacenar las rutas de las imgenes que vamos a mostrar.
Ahora declararemos el cargador que sacar la informacin del archivo txt y lo pasar a las cajas de texto. Para ello utilizaremos el objeto LoadVars, este objeto permite enviar o recoger variables en forma de URL. Expliquemos esto. El objeto LoadVars es capaz de recoger una cadena de texto en forma de URL como la siguiente: var1=valor&var2=valor&var3=valor&var4=valor Y sacar de all las variables y sus valores.
La forma en la que lo hace es sencilla, a cada smbolo & que encuentre entender que lo siguiente que encuentre ser el nombre de una variable (igualada a su valor). De esta forma escribiremos en el archivo de texto diapositivas.txt lo siguiente: titulo1=Los mejores sandwiches &descripcion1=En sa cuina creamos los sandwiches mas originales y sabrosos de toda la ciudad.
&titulo2=Calidad Superior &descripcion2=Nos cuidamos siempre de que nuestros platos ofrezcan la maxima calidad. &titulo3=Productos seleccionados &descripcion3=Seleccionamos los productos uno a uno y de distribuidores de confianza. &titulo4=Nuestras especialidades &descripcion4=No olvides probar nuestras especialidades en ensaladas y postres. De esta forma cuando el objeto LoadVars cargue el archivo ver que hay 8 variables, y cada una de ellas con su respectivo valor.
Veamos, pues, cmo leer y manejar estas variables. Para declarar el objeto slo hace falta escribir: var cargador:LoadVars = new LoadVars(); Una vez declarado el objeto podemos trabajar con l. Lo primero que haremos ser establecer unas cuantas lneas que se ejecutarn cada vez que intentemos cargar el archivo. Para ello aprovechamos el mtodo onLoad del objeto: cargador.onLoad = function(exito:Boolean) { if (exito) { textoDiapositiva.descripcion_txt.text = eval("cargador.descripcion" + imagenActual); //recupera la descripcin textoDiapositiva.titulo_txt.text = eval("cargador.titulo" + imagenActual); //recupera el ttulo } else { textoDiapositiva.descripcion_txt.text = "No se ha podido cargar el texto"; textoDiapositiva.titulo_txt.text = "Error"; } } Al invocar el mtodo onLoad nos devolver un valor (que nosotros hemos llamado exito). Esta variable de tipo booleano puede tomar dos valores, verdadero o falso.
Por tanto, si la carga se efecta correctamente el valor de exito ser true, y false si no pudo cargar el archivo. Por ello el cdigo que se ejecuta al cargar el archivo evala si la carga se realiz con xito. if (exito) {
} else {
} Si se pudo cargar, recuperamos las variables del archivo. Tendremos que acceder a ellas a travs del cargador. cargador.titulo1 nos dar el valor de la variable titulo1. Pero debemos de recuperar la variable correspondiente a la imagen que se est mostrando, cmo lo hacemos? Muy sencillo, deberemos construir el nombre de la variable a recuperar. Para el titulo el nombre de la variable es titulo ms el nmero de la imagen que se muestra. Por lo que nos quedara titulo+imagenActual. Pero, claro, no podemos escribir: cargador.titulo+imagenActual //esto no es correcto Para poder hacerlo deberemos utilizar la funcin eval(), que construir el nombre y luego lo recuperar: eval("cargador.titulo"+imagenActual) Una vez hemos averiguado cmo sacar la variable la adjudicamos al campo de texto: textoDiapositiva.titulo_txt.text = eval("cargador.titulo" + imagenActual); Y hacemos lo mismo para la descripcin: textoDiapositiva.descripcion_txt.text = eval("cargador.descripcion" + imagenActual);
En principio habremos terminado. Optimizaremos el funcionamiento mostrando mensajes de error si el archivo no se pudo cargar: textoDiapositiva.titulo_txt.text = "Error"; textoDiapositiva.descripcion_txt.text = "No se ha podido cargar el texto";
Cerramos todas las llaves y el evaluador de la carga onLoad ya estar preparado. Ahora cada vez que intentemos cargar algn archivo con cargador se ejecutar todo este cdigo, y si la carga se efectu de forma correcta se asignarn las variables correspondientes a las cajas de texto. Para cargar un archivo solo tendremos que escribir:
cargador.load(archivo); Y como en la variable archivo habamos guardado la ruta del txt donde estn las variables necesarias habremos terminado.
Como puedes ver las ltimas lneas que se ejecutan son: cargador.load(archivo); loadMovie(matrizImagenes[imagenActual-1], contenedor); Que cargarn por primera vez la imagen1 y el texto correspondiente. En el cargador deberemos decir que cargue el contenido del array matrizImagenes de la imagen correspondiente. Pero como las matrices empiezan por 0 la ruta de la primera imagen estar almacenada en matrizImagenes[0]. Es por esto que al cargar la imagen la ruta que damos es: matrizImagenes[imagenActual-1]
Ahora veremos que hemos escrito en el fotograma 6 para que se carguen las imgenes y texto que correspondan: if (imagenActual >= total) { imagenActual = 1; } else { imagenActual++; } cargador.load(archivo); //carga del texto loadMovie(matrizImagenes[imagenActual-1], contenedor); //carga de la imagen Este cdigo se ejecuta en el momento en el que el contenedor tiene la propiedad Alfa al 0% por lo que es totalmente invisible. Aprovecharemos este momento para cambiar la imagen y el texto.
Lo primero que evaluamos es si la imagenActual es mayor o igual que el nmero total de imgenes. Si no lo es aumentamos el valor de imagenActual en 1: imagenActual++; En el caso contrario (que imagenActual fuera mayor o igual al total de imgenes) significara que si aumentamos el valor de imagenActual en 1 nos pasaramos y no exitira ni imagen ni texto para esa posicin, por lo que iniciamos de nuevo el contador a 1 para que vuelva a empezar.
Esta condicin har el efecto de que cuando se vea la ltima imagen y se pulse siguiente se visualice de nuevo la primera. Una vez actualizada la variable imagenActual pasamos a cargar la imagen: loadMovie(matrizImagenes[imagenActual-1], contenedor); Y a actualizar el texto utilizando el cargador: cargador.load(archivo); Ejercicios del Tema 19 Prueba evaluativa del Tema 19.
Incluso para la introduccin de texto en formularios es aconsejable el uso de componentes, pues veremos que poseen propiedades que las simples cajas de texto no tienen. Para utilizar alguno de estos componentes basta con arrastrarlo del panel al escenario, o puedes arrastrarlo a la biblioteca para utilizarlo ms tarde. En cualquier caso, cuando hayas aadido el componente a tu pelcula debers darle un nombre de instancia para poder acceder a l en el cdigo y configurar sus opciones en el Panel Parmetros:
Veamos cuales son las opciones para los diferentes componentes: TextInput (Introduccin de texto):
editable: true o false. Permite que el texto se pueda editar o no.
password: true o false. Oculta el contenido del texto mostrndose un asterisco por carcter. text: Indica el texto inicial de la caja.
Button (Botn):
icon: Aade un icono al botn. Para insertar un icono debers crear un grfico o clip de pelcula y guardarlo en la Biblioteca. Una vez all seleccinalo y haz clic derecho sobre l y selecciona Vinculacin. Marca la casilla Exportar para ActionScript en el cuadro de dilogo que aparecer y dale un nombre en Identificador. Este nombre es el que debers escribir en el campo icon del componente botn. Ni el botn ni el smbolo se ajustar al tamao del otro, as que debers modificar sus tamaos para que el icono no sobresalga del botn. label: Texto que se leer en el botn. labelPlacement: left, right, top o bottom. Indica la posicin de la etiqueta de texto en caso de que se utilice junto a un icono. Respectivamente, izquierda, derecha, arriba y abajo. selected: true o false. Indica si el botn se encuentra seleccionado. toggle: true o false. Cuando se encuentra a true hace que el botn pueda tomar dos posiciones, presionado y no presionado.
editable: true o false. Permite la edicin del campo. Mediante ActionScript puedes hacer que se aadan nuevos elementos a la lista. labels: Matriz donde determinaremos el nombre de los elementos de la lista. Estos elementos se correspondern uno a uno a los valores de la matriz introducida en data. Para ambas propiedades se abrir el siguiente cuadro de dilogo:
Desde aqu podrs aadir o quitar elementos utilizando los botones de stos subindolos o bajndolos en la lista con los botones y .
. O alterar el orden
rowCount: Nmero mximo de elementos visibles en la lista. Si este nmero es superado por los elementos se aadir una barra de desplazamiento.
List (Lista):
data: Matriz donde determinaremos el valor qu devolver el componente al seleccionar determinada posicin. labels: Matriz donde determinaremos el nombre de los elementos de la lista. Estos elementos se correspondern uno a uno a los valores de la matriz introducida en data. Para ambas propiedades se abrir el mismo cuadro de dilogo visto para el ComboBox. multipleSelection: true o false. Permite la seleccin mltiple de elementos manteniendo la tecla Ctrl presionada. Tambin es posible seleccionar un rango de elementos seleccionando uno de ellos y pulsando la tecla Shift mientras seleccionamos otro diferente, todos los elementos intermedios resultarn tambin seleccionados. rowHeight: Nmero mximo de filas visibles en la lista. Si este nmero es superado por los elementos se aadir una barra de desplazamiento.
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: miBoton.label = "Haz clic aqu";
El componente Alert
El componente Alert es muy til pero se utiliza de forma diferente al resto de los anteriores. Este elemento nos permitir el uso de avisos en forma de pop-ups . Para utilizarlo debers seleccionarlo en el Panel Componentes y arrastrarlo hasta la Biblioteca. No lo arrastres sobre el escenario, pues no es necesario. Con que se halle presente en nuestra biblioteca podremos realizar llamadas al componente. Para ello slo deberemos escribir: Import mx.controls.Alert;
Alert.show("mensaje"); La primera lnea la insertamos para poder utilizar el componente y acceder a l mediante el cdigo. Luego, en el momento en el que la ejecucin llegue a la segunda lnea saltar un pop-up con el texto que se incluya en mensaje.
Hay que tener cuidado con este mtodo, pues mientras en otros lenguajes de programacin las alertas detienen la ejecucin del cdigo a espera de la aceptacin del mensaje, ActionScript sigue ejecutando el resto de lneas. Podremos aadir detectores para que se evalen las acciones realizadas sobre la alerta utilizando manejadores de eventos. En seguida veremos cmo. Tambin es posible configurar la alerta de muchas formas. La sintaxis completa del objeto es la siguiente: Alert.show(mensaje, titulo, botones, padre, manejador, icono, botonDefecto);
mensaje: El texto del mensaje. titulo: Ttulo del aviso. botones: Botones que tendr el aviso. Puedes poner ms de dos, en ese caso debers separarlos por el smbolo "|". Los botones que puedes aadir son: Alert.OK, Alert.CANCEL, Alert.YES y Alert.NO. Podemos aadir tambin Alert.NONMODAL para hacer que el mensaje de alerta no bloquee el resto de la pelcula, y as, aunque el mensaje se muestre, podamos seguir interactuando con el resto de la ventana. padre: Determina el movieclip sobre el que se abrir la alerta centrndose respecto a l. Para referenciar a la pelcula principal (_root) escribe null o undefined. manejador: El nombre del manejador que se encargar de gestionar el clic sobre la alerta. icono: El nombre del icono que queremos que aparezca a la izquierda del mensaje. Para incluir un icono deberemos vincularlo. Para ello haz clic derecho sobre el grfico o clip de pelcula en la Biblioteca y selecciona Vinculacin. Luego marca la casilla Exportar para ActionScript y dale un nombre de Identificador. Ser a ste al que debers referenciar en el Alert.show().
botonDefecto: Determina el botn por defecto de la alerta. Utiliza la misma notacin que antes: Alert.OK, Alert.CANCEL, Alert.YES y Alert.NO. Se activar este botn cuando se pulsa la tecla Intro.
var miManejador:Function = function (miEvento:Object) { if (miEvento.detail == Alert.OK) { // acciones } else if (miEvento.detail == Alert.CANCEL) { // acciones } }
Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL, null, miManejador, "icono", Alert.OK); Nota: Observa como se han manejado las respuestas de la alerta.
Cuando utilices este mtodo para escribir los mensajes de alerta debers tener en cuenta que tienes que escribir todas las propiedades en orden y sin saltarte ninguna. Aunque puedes no escribir algunas, debers hacerlo de esta forma: Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL, null, miManejador, "icono", Alert.OK); o Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL, null, miManejador, "icono"); o Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL, null, miManejador); o Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL, null); o Alert.show("Mensaje de alerta.", "Ttulo", Alert.OK | Alert.CANCEL);
Botones de Formulario
En los formularios, normalmente, incluiremos dos botones: Enviar y Limpiar. Imagina que llamamos al componente botn de limpiar reset_btn, su cdigo asociado sera sencillo: var escuchadorLimpiar:Object = new Object(); escuchadorLimpiar.click = function(evt:Object) { campo1_txt.text = ""; campo2_txt.text = ""; campo3_txt.text = ""; } reset_btn.addEventListener("click", escuchadorLimpiar); Como puedes ver, hemos creado un escuchador para reset_btn. Cuando se activa simplemente vaciamos el contenido de los campos de texto que queramos. Tambin podramos iniciar los campos de otra forma: nombre_txt.text = "Escribe aqu tu nombre"; email_txt.text = "Escribe aqu tu e-mail"; mensaje_txt.text = "Escribe aqu tu mensaje"; En definitiva, puedes tratar los campos como quieras. Para el botn de envo debers asociar un escuchador del mismo modo, pero el cdigo que ir incluido en l deber enviar los datos, que ser lo que veamos en el siguiente apartado.
Envo de formularios
A partir de ahora veremos cmo afrontar el envo y la recepcin de datos con formularios. Lo haremos a travs de este ejemplo, donde encontraremos elementos de entrada (en los que tendremos que escribir datos para enviarlos) y de salida (donde tendremos que recoger datos de un archivo externo para mostrarlo). El envo de datos de formulario lo realizaremos utilizando el objeto LoadVars que ya hemos visto. Pero en este caso, en vez de recabar informacin, lo usaremos para enviarla. Su uso es el siguiente: var escuchadorEnvia:Object = new Object(); escuchadorEnvia.click = function(evt:Object) { var envio:LoadVars = new LoadVars();
envio.onLoad = function(exito:Boolean) { if (exito) { nombre_txt.text = ""; mail_txt.text = ""; mensaje_txt.text = ""; } else { Alert.show("Ha habido un error en el envo"); } }
// enviamos las variables al archivo PHP envio.sendAndLoad("enviar_comentario.php", envio, "POST"); } submit_btn.addEventListener("click", escuchadorEnvia); Hemos definido un escuchador que se ejecutar cuando se pulse el botn de enviar.
Dentro del cdigo de ste hemos declarado un objeto LoadVars llamado envio. Almacenar las variables en el objeto es tan fcil como escribir lo siguiente: envio.autor = nombre_txt.text; envio.email = mail_txt.text; envio.mensaje = mensaje_txt.text; Y slo quedara enviarlo con el mtodo send. envio.send("enviar_comentario.php", "_blank", "POST");
Esta funcin enva las variables almacenadas en LoadVars utilizando el mtodo especificado en el tercer parmetro (puede ser POST o GET). Si quieres que el script que se ejecuta se abra en una ventana debers indicarlo en el segundo parmetro. Estas dos ltimas funciones son opcionales y podramos escribir solamente: envio.send("enviar_comentario.php");
En el ejemplo no hemos utilizado el mtodo send, sino el mtodo sendAndLoad. envio.sendAndLoad("enviar_comentario.php", envio, "POST"); De este modo podemos aadir un controlador onLoad para evaluar si el envo se realiz correctamente. En el segundo parmetro deberemos indicar cul ser el objeto que se cargar (en nuestro caso el mismo objeto envio). Por lo que adems de realizar el envo hemos aadido las lneas: envio.onLoad = function(exito:Boolean) { if (exito) { nombre_txt.text = ""; mail_txt.text = ""; mensaje_txt.text = ""; } else { Alert.show("Ha habido un error en el envo"); } } Que vaca los campos si la carga del script se realiz correctamente o muestra una alerta en caso contrario.
Nosotros en el ejemplo hemos aadido algunos validadores para asegurar que todos los campos se han rellenado. As, antes de declarar el objeto LoadVars hemos introducido unas cuantas condiciones del tipo: if (nombre_txt.text.length == 0) { Alert.show("Introduce tu nombre", "Error", Alert.OK); return false; } Donde se evala la longitud del texto del campo nombre. Si llega a la lnea return false; se saldr de la funcin y no llegar a enviar los datos.
El script enviar_comentario.php se encargara de recibir los datos, tratarlos y luego almacenarlos o enviarlos por correo. Nosotros hemos almacenado la opcin en un archivo XML desde donde recuperaremos la informacin cada cierto tiempo utilizando un bucle en la lnea de tiempo.
Recuperando informacin
En puntos anteriores vimos cmo utilizar el objeto LoadVars para leer informacin de archivos externos. En este apartado veremos cmo recuperar informacin de un archivo XML. Para ello y el primer paso ser crear un objeto del tipo XML: var comentarios:XML = new XML(); Hemos creado un objeto XML llamado comentarios. Ahora podremos utilizarlo para leer un archivo XML y tomar la informacin contenida en l .
Una propiedad muy til del objeto XML es la de ignoreWhite, que ignorar aquellos campos que estn en blanco y as no tendremos que preocuparnos por posibles errores: comentarios.ignoreWhite = true;
El groso del cdigo que hemos aadido para cargar los datos es el siguiente: comentarios.onLoad = function(exito:Boolean) { if (exito) { comentarios_txt.text = "";
var numeroEntradas = this.firstChild.childNodes.length; // hacemos un bucle para recorrer todos los elementos del archivo XML for (var i = numeroEntradas-1; i>=0; i--) { // guardamos en la variable miXML la ruta del nodo var miXML:XMLNode = this.firstChild.childNodes[i];
// creamos la variable cadenaFinal donde insertaremos el contenido html que tendr salida en el cuadro de texto var cadenaFinal:String;
// y cargamos el contenido del nodo en cadenaFinal cadenaFinal = "<a href=\"mailto:"+email+"\">"+autor+"</a>: "; cadenaFinal += "<span class=\"mensaje\">"+mensaje+"</span><br />";
comentarios.load("lee_comentarios.php");
Ahora explicaremos paso a paso qu hemos hecho. Como puedes ver en la ltima lnea cargamos un script php que genera un documento XML en el objeto comentarios. Al cargarlo se ejecuta el controlador onLoad que est definido al principio.
Si la carga tuvo xito, procedemos a coger la informacin del archivo XML generado. Lo primero que hacemos es vaciar el contenido del rea de texto comentarios_txt. comentarios_txt.text = "";
Luego pasamos a trabajar con el contenido del archivo XML. Un archivo XML tiene la estructura muy similar a un archivo HTML, ya que tambin est basado en etiquetas. El contenido de nuestro archivo es algo parecido a esto: <?xml version="1.0" encoding="ISO-8859-1" ?> <listadoComentarios> <comentario> <autor>jos</autor> <email>jose@correo.com</email> <mensaje>estoy escribiendo un mensaje</mensaje> </comentario> <comentario> <autor>amparo</autor> <email>amparo@correo.com</email> <mensaje>este mensaje tambin se publicar</mensaje> </comentario> <comentario> <autor>miguel</autor> <email>miguel@correo.com</email> <mensaje>mensaje de prueba</mensaje> </comentario> <comentario> <autor>cristina</autor> <email>cristina@correo.com</email> <mensaje>esto funciona!</mensaje> </comentario> </listadoComentarios> A cada una de las etiquetas (sin contar la de xml) se le llama nodo.
Para navegar por los nodos a travs del objeto XML utilizaremos las propiedades firstChild (que referencia la etiqueta contenida inmediatamente despus de aquella en la que nos encontramos) y childNodes (que hace referencia al conjunto de nodos con el mismo nombre dentro de la etiqueta en la que nos encontramos ). De esta forma XML.firstChild.nodeName nos devolvera el nombre del primer hijo dentro del archivo XML, listadoComentarios. As que almacenamos el nmero de comentarios en la variable numeroEntradas escribiendo: var numeroEntradas = this.firstChild.childNodes.length; Esto nos devolver el nmero de hijos de this.firstChild, o lo que es lo mismo de XML.firstChild. Una vez sepamos cuantas entradas tenemos almacenadas, haremos un bucle para sacarlas todas. Este bucle lo empezaremos desde el final para tener as las entradas ms recientes al principio y las ms antiguas al final.
Ahora crearemos una nueva variable llamada miXML que contendr la ruta completa del nodo comentario para cada una de las vueltas del bucle, as no tendremos que escribirla entera cada vez que queramos acceder a ella. var miXML:XMLNode = this.firstChild.childNodes[i]; De esta forma estamos haciendo referencia al comentario nmero i del archivo. Ahora lo nico que debemos hacer es recuperar la informacin dentro del nodo comentario. Como este nodo tiene tres hijos con distinto nombre haremos referencia a ellos como miXML.childNodes[0], miXML.childNodes[1] y miXML.childNodes[2].
Una vez hallamos comprendido bien estos conceptos slo har falta verter el contenido de los nodos (utilizando la propiedad nodeValue) en variables que crearemos a su efecto: var autor:String = miXML.childNodes[0].firstChild.nodeValue; var email:String = miXML.childNodes[1].firstChild.nodeValue; var mensaje:String = miXML.childNodes[2].firstChild.nodeValue; Una vez tengamos la informacin podemos almacenarla y pasar al siguiente nodo comentario. As que le damos formato HTML, lo almacenamos en una variable, y metemos el contenido de esa variable en el rea de texto. var cadenaFinal:String;
comentarios_txt.text += cadenaFinal; El bucle se repetir de este modo para cada uno de los nodos comentarios y cuando termine habremos acabado y toda la informacin contenida en el archivo XML estar (formateada como HTML) en el rea de texto.
Tambin podemos establecer dnde colocar el cursor (o foco) escribiendo la siguiente lnea: Selection.setFocus(nombre_txt); Fcil verdad?
De este modo en las validaciones que vimos antes podemos hacer lo siguiente: if (mail_txt.text.length == 0) { Selection.setFocus(mail_txt); Alert.show("Introduce tu correo electrnico", "Error", Alert.OK); return false; } As si no se ha rellenado algn campo el foco se sita directamente sobre l para que el usuario lo rellene sin tener que desplazarse.
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: focusManager.defaultPushButton = submit_btn; De esta forma haremos que el botn predeterminado sea submit_btn.
Estilos CSS
Podemos asignar estilos CSS al contenido de una caja de texto que acepte HTML. Por ejemplo, nosotros en el rea de texto comentarios_txt tenemos algo parecido a esto: <a href="mailto:ana@correo.com">ana</a>: <span class="mensaje">si actualizo aqu se ver en otra ventana? </span> <br /> <a href="mailto:jesus@correo.com">jess</a>: <span class="mensaje">pues ya estamos todos</span> <br /> <a href="mailto:emilio@correo.com">emilio</a>: <span class="mensaje">yo tambin me apunto</span> <br /> <a href="mailto:david@correo.com">david</a>: <span class="mensaje">bien, pero trae algo para cenar, no tengo nada en la nevera</span> <br /> Obviamente, como el componente admite HTML no veremos el cdigo, sino directamente su salida. Pero podramos asignarle el siguiente estilo para mejorar la visualizacin: a{ font-weight: bold; }
Guardaremos este estilo en un archivo llamado estilo_comentarios.css. Pero, cmo hacemos para vincularlo al rea de texto? Fcil. Basta con declarar un nuevo objeto del tipo TextField.StyleSheet y asociarlo a comentarios_txt. Para hacer esto escribimos: var miHojaEstilo:TextField.StyleSheet = new TextField.StyleSheet(); miHojaEstilo.onLoad = function(exito:Boolean) { if (exito) { comentarios_txt.styleSheet = miHojaEstilo; } } miHojaEstilo.load("estilo_comentarios.css"); Cuando se efecta la carga del archivo, si se realiza con xito, se asociar a la propiedad styleSheet de comentarios_txt. Y ya tendremos nuestro campo de texto formateado.
Podemos cambiar esta propiedad en cualquier momento, de modo que cuando se asocie una nueva hoja de estilo mediante la siguiente lnea, el contenido del rea de texto se redibujar para tomar el nuevo formato. miHojaEstilo.load("estilo_alternativo.css");
Incorporar Fuentes
Otro de los problemas con los que nos toparemos cuando trabajemos con flash sern las fuentes que utilicemos. Solamente debers incluir en tu proyecto aquellas fuentes que quieras utilizar para los textos dinmicos y de entrada , pues Flash se encargar de gestionar aquellas que utilices en los estticos. Para incorporar una fuente en tu pelcula debers hacer clic derecho en alguna parte vaca de la Biblioteca y seleccionar Nueva fuente. Se abrir el siguiente cuadro de dilogo:
En el desplegable Fuente selecciona la fuente que deseas utilizar. Debers seleccionar los estilos que vas a utilizar (Negrita, Cursiva y Tamao), de lo contrario la fuente no estar disponible. Dale un nombre, que se mostrar en la Biblioteca y estar lista para utilizarse.
Cuando crees un campo de texto dinmico o de entrada selecciona la fuente que aparecer sealada con un asterisco (*).
Antes de empezar resaltaremos una cosa. En ActionScript los colores se indican mediante una cadena de 8 caracteres con un componente hexadecimal: 0xRRVVAA. Las dos primeras sern siempre las mismas 0x, las dos siguientes correspondern a la cantidad de color rojo, las dos siguientes de verde y las dos ltimas de azul. De este modo 0x000000 sera el color negro (la ausencia de color), y 0xFFFFFF el color blanco (con el rojo, azul y verde al mximo).
El Filtro Sombra
Utilizando este filtro podremos aadirle una sombra a la imagen:
.blurY: determina la cantidad de desenfoque vertical. .color: determina el color de la sombra (escrito 0xRRVVAA). .distance: determina la distancia de la sombra al objeto. .hideObject: booleano, esconde el objeto dejando slo la sombra (segunda imagen). .inner: booleano, hace que la sombra sea interior. .knockout: booleano, activa el filtro extractor, hace que el objeto se vuelva del color del fondo. .quality: nmero de veces que se aplica el filtro. Puede tomar los valores 1, 2 3. Calidad baja, media y alta, respectivamente. .strength: determina la intensidad de la sombra.
var sombra:DropShadowFilter = new DropShadowFilter(); sombra.strength = 5; sombra.alpha = 0.50; sombra.color = 0x000000; ...
miClip.filters = [sombra]; Tambin podras crear la sombra directamente con todas sus propiedades en el constructor de este modo: import flash.filters.DropShadowFilter;
var sombra:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject);
miClip.filters = [sombra]; 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.
Para practicar la carga y modificacin de filtros te aconsejamos realizar el Ejercicio Filtro Sombra
El Filtro Desenfocar
Utilizando este filtro podremos hacer que la imagen se muestre desenfocada:
miClip.filters = [desenfocar]; Tambin podras crear el desenfoque directamente con todas sus propiedades en el constructor, de este modo:
import flash.filters.BlurFilter;
miClip.filters = [desenfocar]; 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.
El Filtro Iluminado
Utilizando este filtro podremos aadirle un efecto de iluminacin a la imagen:
.blurX: determina la cantidad de desenfoque horizontal. .blurY: determina la cantidad de desenfoque vertical. .color: determina el color de la iluminacin (escrito 0xRRVVAA). .inner: booleano, hace que la iluminacin sea interior. .knockout: booleano, activa el filtro extractor, hace que el objeto se vuelva del color del fondo. .quality: nmero de veces que se aplica el filtro. Puede tomar los valores 1, 2 3. Calidad baja, media y alta, respectivamente. .strength: determina la intensidad de la iluminacin.
var iluminado:GlowFilter = new GlowFilter(); iluminado.quality = 3; iluminado.alpha = 0.50; iluminado.color = 0x000000; ...
miClip.filters = [iluminado]; Tambin podras crear la iluminacin directamente con todas sus propiedades en el constructor, de este modo: import flash.filters.GlowFilter;
var iluminado:GlowFilter = new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout);
miClip.filters = [iluminado]; 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.
El Filtro Bisel
Utilizando este filtro podremos aadirle un bisel a la imagen:
...
miClip.filters = [bisel]; Tambin podras crear el bisel directamente con todas sus propiedades en el constructor de este modo: import flash.filters.BevelFilter;
var bisel:BevelFilter = new BevelFilter(distance, angle, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, 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.
.angle: determina el ngulo de la iluminacin. .blurX: determina la cantidad de desenfoque horizontal. .blurY: determina la cantidad de desenfoque vertical. .colors: conjunto de colores que definen el degradado (escritos 0xRRVVAA). .distance: determina la distancia de la iluminacin al objeto. .knockout: booleano, activa el filtro extractor, hace que el objeto se vuelva del color del fondo. .quality: nmero de veces que se aplica el filtro. Puede tomar los valores 1, 2 3. Calidad baja, media y alta, respectivamente. .ratios: matriz de proporciones de distribucin de color para los colores correspondientes de la matriz colors (de 0 a 255). .strength: determina la intensidad de la iluminacin. .type: indica la colocacin de la iluminacin. Puede tomar los valores inner, outer y full. Interior, exterior y completo, respectivamente.
Podrs utilizar el filtro Iluminado Degradado escribiendo el siguiente cdigo: import flash.filters.GradientGowFilter;
var iluminado:GradientGowFilter = new GradientGowFilter(); iluminado.angle = 45; iluminado.colors = [0xFF0000, 0x00FF00, 0x0000FF]; iluminado.type = "inner"; ...
miClip.filters = [iluminado]; Tambin podras crear la iluminacin directamente con todas sus propiedades en el constructor de este modo:
import flash.filters.GradientGowFilter;
var iluminado:GradientGowFilter = new GradientGowFilter(distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);
miClip.filters = [iluminado]; 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.
Podrs utilizar el filtro Bisel Degradado escribiendo el siguiente cdigo: import flash.filters.GradientBevelFilter;
var bisel:GradientBevelFilter = new GradientBevelFilter(); bisel.angle = 90; bisel.colors = [0xFF0000, 0x00FF00, 0x0000FF]; bisel.type = "full"; ...
miClip.filters = [bisel]; Tambin podras crear el bisel directamente con todas sus propiedades en el constructor de este modo: import flash.filters.GradientBevelFilter;
distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, 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.
Slo tiene una opcin: .matrix. En ella escribiremos una matriz de 20 elementos (4x5) que indicarn la cantidad de cada color, su intensidad, brillo, saturacin y contraste.
Podrs modificar el filtro Ajustar Color escribiendo el siguiente cdigo: import flash.filters.ColorMatrixFilter;
miClip.filters = [ajustaColor];
nuevaMatriz.push(sombra);
miClip.filters = nuevaMatriz; Como puedes ver, lo que hacemos es guardar los filtros exitentes en una matriz nuevaMatriz, introducimos el nuevo filtro en ella con el mtodo push() y luego le asignamos los filtros que contiene miMatriz al clip miClip.
Como esta propiedad se trata de una matriz tambin podemos acceder a los filtros de esta forma: var nuevaMatriz:Array = miClip.filters;
miClip.filters = nuevaMatriz; Descargamos los filtros en nuevaMatriz, y ahora accedemos al primer filtro almacenado y cambiamos sus propiedades blurX y blurY. Una vez modificadas, volvemos a volcar el contenido de nuevaMatriz en miClip.filters. Fcil, verdad? El nico problema que tiene este mtodo es que debers recordar el lugar que ocupa cada filtro en la matriz. Recuerda que el mtodo push() inserta un elemento en una matriz siempre en ltimo lugar.
Importando Vdeos
Lo 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 esta:
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 modo en el que se implementar el vdeo:
Puedes elegir entre varias opciones, si seleccionas cualquiera de ellas vers su descripcin en la derecha de la pantalla. Te adelantamos que para la implementacin de vdeo para Streaming debers disponer de un servidor (de pago) que transmita tu vdeo al usuario de una forma ptima. La opcin Descarga progresiva, a pesar de no ser la ms aconsejada para conexiones de baja velocidad (sobre todo para archivos muy grandes) es la ms utilizada por aquellos que no disponen de los recursos necesarios para contratar los servicios de un servidor de vdeo en formato Stream. As que seleccionaremos la primera opcin y pulsaremos Siguiente.
Ahora es cuando realmente configuraremos el archivo de salida. Vers 5 pestaas. Vdeo y Audio te servirn para ajustar la compresin y calidad del vdeo . Aunque puedes seleccionarla directamente en el desplegable que te aparece en la pestaa Perfiles de codificacin. Nosotros haremos hincapi en la pestaa Puntos de referencia.
Existen dos tipos de puntos de referencia diferentes: el de Navegacin y el de Evento. Creando puntos de Navegacin podremos referenciarnos ms tarde a ellos para saltar en la pelcula. Sera algo as como crear captulos sobre los que podremos navegar utilizando botones y ActionScript. El punto de Referencia de Evento nos permitir crear interacciones con el resto de objetos en la pelcula. Estos puntos nos permitirn pasar parmetros que podremos recuperar mediante ActionScript. En el ejemplo hemos creado los siguientes puntos de referencia:
Como ves hay 2 de Navegacin, a los cuales acudiremos pulsando los botones para saltar entre los captulos de la pelcula. Luego hemos aadido 4 puntos de Evento desde los que pasaremos un parmetro que har que se muestre determinado fotograma de un clip que se encontrar en el Escenario.
Puedes realizar el ejercicio paso a paso de Puntos de Referencia para ver cmo lo hacerlo.
Desde la pestaa Recortar y cambiar tamao podrs modificar el tamao del vdeo y su duracin. Cuando hayas terminado pulsa el botn Siguiente.
Desde aqu podrs seleccionar un estilo de controles predeterminado , elige uno o selecciona Ninguno para crear t mismo los controles (como veremos a continuacin) y pulsa el botn Siguiente. El sistema te avisar de que el vdeo est debidamente configurado y pasar a importarlo. Cuando haya terminado lo aadir directamente sobre el Escenario.
El Componente FLVPlayback
Si ya tuvieses el archivo importado a flv no hara falta que realizases las acciones anteriores, slo debers insertar en el escenario un componente que incorpora Flash para la reproduccin de ste. Abre el Panel Componentes desde Ventana Componentes y haz clic sobre FLV Playback - Player 8. Arrastra un componente FLVPlayBack al Escenario. Desde el Panel Parmetros podrs configurarlo. All encontrars las siguientes opciones:
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.
autoRewind: puede tomar los valores true o false. Indica si el vdeo deber volver a la posicin inicial desps de haberse reproducido completamente. 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. contentPath: indica la ruta del archivo que se deber reproducir. cuePoints: indica los puntos de referencia que estn incluidos en la pelcula. Una vez importada la pelcula a formato flv no pueden ser modificados. 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. skin: desde aqu puedes 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 aprecer cuando el cursor se site sobre la pelcula. totalTime: indica el tiempo total del vdeo. volume: de 0 a 100. Indica el volumen mximo del vdeo.
Una vez insertada la pelcula mediante la adicin de este componente o por importacin deberemos darle un nombre de instancia para poder referirnos a l. Hazlo desde este mismo panel o desde el Panel Propiedades.
miVideo.volume = 0;
PauseButton: pausa la pelcula en el momento en el que se pulse el botn. PlayButton: reaunda (o comienza) la reproduccin a partir de donde se encuentre el cabezal de reproduccin de vdeo. PlayPauseButton: una mezcla de los dos anteriores, es capaz de pausar y reanudar la reproduccin desde un mismo control.
SeekBar: desde esta barra avanzar y retroceder manualmente por la lnea de flujo de la pelcula. StopButton: detiene la reproduccin y posiciona el cabezal de reproduccin al principio del vdeo. VolumeBar: permite el aumento o disminucin del volumen del vdeo mediante una barra de volumen.
Una vez aadidos los componentes necesarios al Escenario tendrs que darle un nombrede instancia y luego escribir lo siguiente (dependiendo de los controles que hayas arrastrado) en el Panel Acciones del fotograma 1: 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.bufferinBar = miBarraProgreso; El componente se asociar al vdeo y funcionar por s solo. Fcil, verdad? Puedes modificar los componentes que aadas al Escenario haciendo doble clic sobre ellos y cambiando su forma, tamao o color.
miVideo.play();
miVideo.stop();
miVideo.pause();
miVideo.seek(5);
Esta lnea colocar la cabeza lectora en el segundo 5 y reproducir a partir de ah.
volume: define el volumen del vdeo. Puedes introducir un valor entre 0 y 100.
miVideo.volume = 50; Un ejemplo de cmo crear un botn de Play/Pause sera asociando el cdigo siguiente a un botn: on (release) { if (miVideo.state == miVideo.PAUSED) { miVideo.play(); } else { miVideo.pause(); } }
La propiedad state devuelve el estado en el que se encuentra nuestro vdeo en el momento, puede tomar los siguientes valores:
miVideo.PAUSED: el vdeo se encuentra pausado. miVideo.PLAYING: el vdeo se est reproduciendo. miVideo.REWINDING: el vdeo est en estdo de rebobinado. miVideo.SEEKING: el vdeo est en estado de bsqueda. miVideo.STOPPED: el vdeo se encuentra detenido. miVideo.BUFFERING: el vdeo todava se est almacenando en el buffer. miVideo.CONNECTION_ERROR: se ha producido un error de conexin y el vdeo no podr visualizarse. miVideo.DISCONNECTED: el vdeo est en estado de desconexin. Este estado se producir hasta que se le asigne una ruta a la propiedad contentPath. miVideo.LOADING: el vdeo est en estado de carga.
Ahora veremos como interactuar con los puntos de referencia que hayamos creado. En el ejemplo hemos creado 3 botones que debern saltar a los tres puntos diferentes que hemos creado: inicio, carrera1 y carrera2. El cdigo asociado al botn sera el siguiente: on (release) { 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 funciones seekToNextNavCuePoint() y seekToPrevNavCuePoint() para avanzar y retroceder, respectivamente, por los diferentes puntos de referencia de navegacin creados. miVideo.seekToNextNavCuePoint();
} } miVideo.addEventListener("cuePoint", eventosVideo); De esta forma cuando se encuentre con un punto de referencia evaluar si tiene parmetros con la propiedad: puntoRef.info.parameters.length Si es as, sacamos la informacin del parmetro llamndolo por su nombre y actuamos en consecuencia. 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. Si escribieses lo siguiente te devolvera al Panel Salida el nombre del punto de referencia. trace(puntoRef.info.name);
Manejando Elementos
Cuando trabajemos con objetos necesitaremos acceder a algunas caractersticas bsicas, como por ejemplo su anchura y altura o su posicin en el Escenario. Podemos modificar el tamao del objeto utilizando las propiedades _width, _height, _xscale e _yscale. Las dos primeras (_width y _height) modificarn o devolvern la anchura y altura , respectivamente, en pxeles del objeto referenciado, por tanto, podemos cambiar el tamao de un clip escribiendo lo siguiente: miClip._width = 100; miClip._height = 200;
Las propiedades _xscale e _yscale cambian el tamao, pero de forma porcentual. Podemos utilizar estas propiedades para hacer un clip el doble de grande que era, por ejemplo: miClip._width = 100; miClip._height = 100;
miClip._xscale = 200; miClip._yscale = 200; Har que el clip tome el tamao de 100px de alto y 100px de ancho, aunque su visualizacin sea del doble (200%). Podramos devolver sus dimensiones a su estado real escribiendo: miClip._xscale = 100; miClip._yscale = 100; Tambin podemos averiguar o modificar la posicin de un objeto, basta con trabajar con sus propiedades _x e _y: miClip._x = 50; miClip._y = 150;
posicionDeClipHorizontal = miClip._x; posicionDeClipVertical = miClip._y; Recuerda que estas propiedades trabajan con pxeles. De esta forma podemos mover el objeto de una forma muy fcil, por ejemplo para hacer que se desplace hacia la derecha del Escenario debers escribir: 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:
As, podemos llamar mediante la instruccin gotoAndStop() a uno de los fotogramas del clip para que se muestre dicha posicin y d ms realismo al movimiento. El cdigo que hemos incluido en la pelcula es el siguiente: var izquierda:Boolean = false; var derecha:Boolean = false;
_root.onEnterFrame = function() { 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 la funcin onEnterFrame. 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 en el tema 24.
Hemos utilizado las variables derecha e izquierda (de tipo booleano) para evaluar si el objeto debe desplazarse. En el evento onEnterFrame 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:
En ambos la rotacin se aplicar respecto al punto de referencia, por lo que en la edicin de ste debers utilizar los botones y del Panel Alinear (Ventana Alinear) para centrar el objeto respecto al punto de referencia del clip.
Realiza el paso a paso de rotacin para ver mejor como funciona. 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:
Escribiendo la siguiente lnea recuperaremos el ngulo que buscamos: var angulo = Math.atan2(x, y); Ahora veamos las tres consideraciones que tenemos que tener en cuenta. Observa este ejemplo:
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:
Ahora ya podemos emplear la funcin atan2: var angulo = 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:
Por tanto si decimos a nuestro objeto que se oriente -30 grados se colocar de esa forma:
Nuestro objeto se encuentra en otro cuadrante completamente diferente, pero si observamos con atencin, la diferencia siempre ser de 90:
Slo tenemos que sumarle 90 al ngulo resultante para que el objeto se oriente hacia el lugar correcto. As que podemos solventaremos esto son una sola lnea. Pero antes convertiremos el ngulo resultante en radianes a grados: var grados:Number = Math.round(angulo*180/Math.PI);
miClip._rotate = grados + 90; Desde luego la suma que hemos realizado es consecuencia directa de que el objeto este orientado inicialmente haca 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:
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.
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 attachMovie. Tiene la siguiente sintaxis: this.attachMovie(simbolo, nombreInstancia, nivel, opciones); Para poder incluir un clip en el escenario antes debers vincularlo para poder acceder a l desde ActionScript. Puedes hacerlo haciendo clic derecho sobre el elemento en la Biblioteca. Selecciona Vinculacin. En la ventana que se abrir haz clic sobre Exportar para ActionScript y dale un nombre al cual te podrs referir cuando lo cargues con attachMovie(). En la primera variable deberemos introducir el nombre del objeto tal y como lo escribimos en la vinculacin. La variable nombreInstancia almacenar el nombre de instancia al cual podremos referirnos ms tarde para acceder a las propiedades y mtodos del objeto creado. El nivel que indiquemos configurar el estado de profundidad del clip. De esta forma podrs colocar unos archivos encima de otros y decidir cual se encontrar en un nivel superior o inferior .
Si vas a aadir elementos aleatoriamente es aconsejable que utilices un contador de niveles (y vayas incrementndolo cada vez que aadas un elemento) para asociar cada elemento a un nivel, pues si cargas dos elementos en un mismo nivel se descargar el ya existente.
En la variable opciones podrs inicializar el objeto con las propiedades definidas desde un inicio, debers introducirlas entre llaves {} y separadas por comas. Este parmetro es opcional. this.attachMovie("objeto", "miClip", 5, {_x:0, _y:0}); Para eliminar clips insertados mediante attachMovie puedes utilizar removeMovieClip() o unloadMovie(): miClip.removeMovieClip(); Tambin podemos utilizar otra funcin que incorpora Flash llamada duplicateMovieClip(). Esta funcin duplica un clip ya existente en el Escenario, creando un nuevo con un nombre de instancia personalizado. Su sintaxis es la siguiente: duplicateMovieClip(objetoDuplicar, nuevoNombre, nivel); Debers escribir el nombre del clip a duplicar en el primer parmentro, luego selecciona un nombre de instancia para el nuevo clip y escoge un nivel de carga. Los movieclips cargados con esta funcin tambin se podrn eliminar con las funciones removeMovieClip() y unloadMovie().
Realiza el paso a paso de Carga de Objetos para practicar mejor estas funciones.
on (press) { startDrag(this); }
Ms tarde en el evento release (cuando se suelta el botn), detendremos el arrastre y el objeto quedar colocado en el sitio que defini el botn:
on (release) { stopDrag(); }
La funcin startDrag permite varios parmetros: startDrag(objetoArrastar, bloqueaCentro, izquierda, arriba, derecha, abajo); En bloqueCentro podrs pasarle un valor ( true o false) que indicar si el arrastre se realizar desde el centro del clip o desde el punto donde hizo clic el usuario . El resto de variables te permitir definir mediante coordenadas un espacio activo donde se podr realizar el arrastre. 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 elemento se ha soltado el objeto arrastrado : on (release) { stopDrag(); trace(this._droptarget); }
Este cdigo devolver al Panel Salida el nombre de instancia del objeto sobre el cual se ha soltado. Si el objeto no tuviese uno devolvera el nombre genrico instanciai, donde i es un nmero de orden de objetos aadidos al Escenario.
Realiza el paso a paso de Arrastre y Orientacin de objetos para practicar conceptos que hemos visto hasta ahora.
Otra cosa que nos ser de gran ayuda ser 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 _xmouse e _ymouse: var coordenadaX:Number = _xmouse; var coordenadaY:Number = _ymouse; Fcil, verdad? Con todo lo que hemos aprendido podemos ya sustituir el cursor del Mouse normal por uno de nuestro agrado. Para ello tienes que escribir muy pocas lneas: this.attachMovie("cursor", "miCursor", 500);
Mouse.hide();
var escuchador:Object = new Object(); escuchador.onMouseMove = function() { miCursor._x = _xmouse; miCursor._y = _ymouse; }
Mouse.addListener(escuchador) ; En el cdigo insertamos un objeto llamado miCursor que ser una instancia del clip cursor que habremos guardado en la Bilioteca. Escondemos el cursor. Y aadimos un escuchador que haga que el clip miCursor se posicione en el lugar del Mouse a cada
movimiento de ste. Como ves una de las pocas cosas nuevas introducidas aqu es el uso de la funcin hide() del ratn. Invocndola haces que el Mouse desaparezca. Puedes volver a visualizar el ratn escribiendo: Mouse.show();
} } Key.addListener(escuchador); Aunque depende siempre de la funcin que quieras que realicen tus teclas, a veces es ms til un mtodo que otro. 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. En el ejemplo anterior utilizbamos el ratn para mover el clip, ahora podemos usar las teclas:
El cdigo que hemos incluido es muy parecido al anterior, solamente hemos cambiado los eventos por los cuales se dispara el desplazamiento: onEnterFrame = function() { if (Key.isDown(Key.RIGHT)) { miClip._rotation = 10; if (miClip._x < 515) { miClip._x = miClip._x + 3; } else { miClip._rotation = 0; } }
else if (Key.isDown(Key.LEFT)) { miClip._rotation = -10; if (miClip._x > 30) { miClip._x = miClip._x - 3; } else { miClip._rotation = 0; } } else { miClip._rotation = 0; } } Como ves en el ejemplo se evala cada vez que entra en el fotograma, por lo que las funciones de la presin continuada de una tecla se ven cubiertas .
miClip.hitTest(_xmouse, _ymouse); Cuando utilizamos esta funcin pasndole unas coordenadas podremos aadirle un parmetro: formaObjeto. Este parmetro tomar valor true si queremos que se detecte la colisin con la forma de la instancia, o false si queremos que se evale con sus bordes rectngulares de objeto. La funcin, entonces, tomara la siguiente forma: miClip.hitTest(coorX, coorY, formaObjeto); Donde formaObjeto decidir si se toma o no la forma completa del clip miClip.
Tambin podemos ver si dos objetos chocan entre s dndole un target a la funcin en vez de unas coordenadas. En ese caso tendramos: var colision:Boolean = miClip.hitTest(miClip2); En este caso hemos almacenado en la variable colisin el valor de la evaluacin de solapamiento o corte entre la posicin de miClip y miClip2. Esta lnea tendra su homlogo en: var colision:Boolean = miClip2.hitTest(miClip); Pues ambas realizan la misma accin al buscar coincidencias entre los mismos objetos.
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. Esto complica un poco las cosas, pues deberemos utilizar la primera sintaxis de la funcin: miPared.hitTest(coorXfinal_Clip, coorYfinal_Clip); Pero, cmo conocemos las coordenadas de una forma?, cmo averiguo el punto mximo que alcanza en la esquina abajo derecha?. La respuesta a esta segunda pregunta es bastante sencilla, debo averiguar la coordenada mxima de las x (para conocer su ancho mximo) y lo mismo para las y (para conocer su altura mxima). Utilizaremos para ello la funcin getBounds(). Esta funcin trabaja de la siguiente forma: miClip.getBounds(movieclip); Donde en movieclip escribiremos la ruta de destino de la lnea de tiempo cuyo sistema de coordenadas utilizaremos como punto de referencia . Normalmente escribiremos _root, para que las coordenadas dadas sean respecto a la pelcula en general y no sobre un clip en particular. Mediante esta funcin podremos acceder a las x mnimas y mximas, y lo mismo para las y. Slo debers escribir lo siguiente: miClip.getBounds(_root).xMin; miClip.getBounds(_root).xMax;
miClip.getBounds(_root).yMin; miClip.getBounds(_root).yMax; Realiza el paso a paso de Colisin y Movimiento para practicar este concepto.
Funciones Avanzadas
Tambin veremos otras opciones que nos ayudarn mucho a la hora de crear juegos. Una de ellas es la de la posibilidad de darle aleatoriedad a los componentes.
Podemos utilizar la funcin que incorpora Flash Math.random() que devuelve un nmero pseudo-aleatorio entre 1 y 0. Su uso es simple slo debers escribir: var miNumero:Number = Math.random(); Su uso es tan til que a raz de esta funcin se ha creado este trozo de cdigo que casi utilizars en la mayora de tus pelculas que contengan componentes aleatorios: function randRange(minNum:Number, maxNum:Number):Number { return (Math.floor(Math.random()*(maxNum-minNum+1)) +minNum); } Esta funcin te devuelve un nmero aleatorio entre dos nmeros: var miNumero:Number = randRange(1, 100); En este ejemplo se almacenar un nmero de 1 a 100 en la variable miNumero. En el juego de ejemplo que estamos viendo hemos utilizado esta funcin para generar la cada de proyectiles: var randomProyectil:Number = randRange(1, 3); var miProyectil:MovieClip = this.attachMovie("proyectil"+randomProyectil, "proyectil"+profundidad, profundidad); profundidad++;
miProyectil._y = -miProyectil._width;
miProyectil._x = randRange(10, 540); Como ves tenemos randomizados muchos de los procesos. El primer randRange decide qu tipo de proyectil se lanzar. El segundo nos da el tamao ( _xscale e _yscale) y la transparencia que tendr. El trecer nmero aleatorio se lo asignaremos a la velocidad. Y por ultimo utilizamos un cuarto randRange para posicionar el proyectil en una coordenada x de la pantalla. De esta forma hemos logrado un abanico de posibilidades muy amplio en posibilidades de proyectiles.
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: miProyectil.speed = velocidad+randRange(0, 3)+level; Hemos creado una velocidad inicial y le hemos sumado una aleatoria para cada elemento, luego lo hemos asociado a una propiedad speed que hemos aadido al elemento. De hecho, a esa velocidad se le suma la que tiene el nivel del juego que va aumentando a medida que se van eliminando proyectiles . De ah que cuando asignamos el movimiento del elemento: this._y += this.speed; 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. 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: var miFormato:TextFormat = new TextFormat(); miFormato.bold = true; miFormato.font = "Arial";
this.createTextField("estadisticas_txt", 5000, 10, 0, 530, 22); estadisticas_txt.setNewTextFormat(miFormato); estadisticas_txt.selectable = false; estadisticas_txt.tabStops = [100, 200, 300, 400]; Este es el cdigo que hemos utilizado en el juego. Puedes ver que hemos creado un objeto llamado miFormato con unas caractersticas bsicas que podremos aplicar sobre cualquier texto de nuestra pelcula. Luego mediante la funcin createTextField hemos creado el campo. Veamos cual es su sintaxis: createTextField(nombreInstancia, profundidad, coordenadaX, coordenadaY, anchura, altura); Como puedes ver, otra vez nos encontramos con los niveles que utilizbamos con la funcin attahMovie. Simplemente asegrate de que no repites el nivel y todo ir bien. Ahora slo har falta remitirse a la propiedad text del texto que hemos creado para darle un valor, y el texto se mostrar en pantalla: estadisticas_txt.text = "Estas son las estadsticas del juego"; 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.
Por ejemplo, si hacemos objeto._x += 10 estamos desplazando el objeto 10 pxeles hacia la derecha. Vamos a ver como mover un objeto a partir de este ejemplo de una bola botando.
El algoritmo es muy sencillo, se trata de ir modificando la posicin de la bola desde una posicin inicial para que vaya bajando hasta que llegue al suelo , en ese momento invertimos el movimiento para que suba y calculamos hasta donde tiene que subir. As sucesivamente hasta que deje de botar. Para que la bola baje debemos sumar una cantidad a la coordenada y, y para que suba debemos restarle una cantidad. Si queremos que la bola se vaya desplazando hacia la derecha debemos sumar una cantidad a la coordenada x. Cuando la bola baja, segn el esquema de la derecha, pasa de la posicin (x 1, y1) a la posicin (x2,
y2), para ello se incrementa la x con el valor incre_x (que estaria representado por la lnea azul) y se incrementa la y con el valor incre_y (que estaria representado por la lnea roja). Cuando la bola sube, la nica diferencia es que la coordenada y va disminuyendo en lugar de aumentando, segn el esquema de la derecha, al subir se pasa de la posicin (x' 1, y'1) a la posicin (x'2, y'2), para ello se incrementa la x con el valor incre_x (que estaria representado por la lnea azul) y se decrementa la y con el valor incre_y (que estaria representado por la lnea roja)
Vamos a ver lo ms importante del cdigo ActionScript que tenemos un poco ms abajo. Hemos definido creado una bola azul y la hemos convertido en un movieclip, la instancia se llama bola_mc. Inicialmente la bola esta en la posicin (bola_mc._x= 0,bola_mc._y= 0) Mediante la variable baja, sabremos si la bola esta bajando o subiendo. Cuando la coordenada y llega al suelo, la bola pasar a subir, cuando la coordenada y llegue al tope la bola comenzar a bajar. En cada bote la bola ira perdiendo fuerza y el bote sera ms bajo, la variable elasticidad determinar esta perdida de potencia. Cada vez que la bola llega al tope calculamos el nuevo tope, para ello calculamos la distancia de la bola al suelo, la dividimos por la elasticidad y esa cantidad se la sumamos al tope. En el esquema, la linea naranja representa esa cantidad que le sumamos al tope 1 para pasar al tope 2. 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 detine la ejecucin (si todava no haba acabado) y se lanza una nueva ejecucin. Cuando el tope llega al suelo se detine la ejecucin.
on (release) { var baja:Boolean = true; var incre_x:Number = 3.5; var incre_y:Number = 8; var suelo:Number = 280; var tope:Number = 0; var elasticidad:Number = 3; bola_mc._y = 0; bola_mc._x = 0; tope += (suelo - bola_mc._y) / elasticidad; var repeticion:Number; function botar() { if (baja) { // baja bola_mc._y += incre_y; bola_mc._x += incre_x; if (bola_mc._y>=suelo) { baja = false; } } else { // sube bola_mc._y -= incre_y; bola_mc._x += incre_x; if (bola_mc._y<=tope) { baja = true; if (tope>=suelo) { incre_y = 0; clearInterval(repeticion); } tope += (suelo - bola_mc._y) / elasticidad; } }
} clearInterval(repeticion); repeticion = setInterval(botar, 35); } En este sencillo ejemplo la trayectoria de la bola es rectilnea, para que fuese un movimiento ms real debera seguir una trayectora 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.
De todas formas si deseas probar suerte con las curvas y ActionScript realiza el ejercicio Espiral para empezar a familiarizarte con ellas.
var repeticion:Number = setInterval(contar, 2000); function contar() { trace("contador: "+ i++); if (i>10) { clearInterval(repeticion); } }
La funcion clearInterval sirve para detener la ejecucin de la funcin llamada desde setInterval. Por lo tanto, conviene utilizar clearInterval siempre que usemos setInterval, para evitar que la ejecucin contine indefinidamente. En el ejemplo del punto anterior hemos definido la funcin gobal setInterval para que la funcin botar se ejecute cada 35 milisegundos.
onEnterFrame El controlador de eventos onEnterFrame, asociado al objeto MovieClip, permite invocar a una funcin de forma repetida tantas veces como fotogramas por segundo tenga definida la pelcula. Por ejemplo, en el movieClip bola_mc: var i:Number =0; bola_mc.onEnterFrame = function() { trace("ejecutando: "+ ++i); if ( i > 30 ){ delete this.onEnterFrame; } }
Si la velocidad de la pelcula es de 12 fps, este cdigo escribira en la salida 12 lneas por segundo, de esta forma:
ejecutando:1
ejecutando:2 ejecutando:3
... Como puedes ver hemos aadido una condicin para que cuando el valor de i sea mayor de 30 acabe la ejecucin del controlador onEnterFrame y as evitar que se ejecute indefinidamente.
Aunque con este ejemplo no lo parezca, (slo pretende explicar la funcin) estas dos tipo de funciones que se ejecutan repetitivamente pueden ser muy tiles en determinadas ocasiones. A lo largo del cursos ya hemos visto algunos ejemplos de su utilidad, a continuacin veremos otro ejemplo que puede sernos til. Imagnate que quieres que tu pelicula se detenga durante 2 segundos y luego continue. Esta es una forma de hacerlo utilizando la funcin setInterval.
Colocariamos este cdigo en el frame que deseemos, llamamos a setInterval con 1 sg (1000 milisg) y cuando se hallan cumplido dos llamadas detenemos setInterval y continuamos con el siguiente frame de la pelcula. var tope:Number = 1; var repeticion:Number = setInterval(parar, 1000); function parar() { tope++; if (tope > 2) { clearInterval(repeticion); nextFrame(); play(); } } stop();
En este caso, se trata de imitar el bote de una pelota, por lo tanto, dibujamos una curva que imite dicho bote. De esta forma conseguiremos una animacin que resulta ms natural que el bote con trayectora recta que vimos en el punto anterior.
En las imgenes podrs ver que 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.
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 diferente para animar un objeto en Flash, mediante ActionScript y mediante gua de movimiento.
Segn cada caso concreto resultar ms adecuado eligir 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 dificil 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.
Animaciones de rostros
Una de las bases para hacer animaciones de personajes es la animacin de rostros, en esta pequea introduccin aprenderemos cmo hacer que un rostro pase de la risa al enfado. Todos sabemos que un rostro sonriente tiene las cejas, los ojos y la boca en distinta posicin que un rostro enfadado. Vamos a ver como con unas sencillas tranformaciones de forma y de color obtenemos un buen resultado.
Lo primero que hay que tener en cuenta es dibujar los elementos que tienen que moverse en una capa propia, as crearemos una capa para la boca, cejas, etc. Dibujamos la boca con herramienta Linea, en el fotograma 1, y creamos un frame clave en el fotograma 17. Para convertir la lnea recta en una curva, volvemos al fotograma 1 y activamos la herramienta Seleccin y nos aseguramos de que la lnea de la boca NO este seleccionada. Ahora acercamos el cursor a la lnea y cuando aparezca una pequea lnea curva debajo del cursor hacemos clic y arrastramos hacia abajo, asi tendremos una boca sonriente. Vamos al fotograma 17 y hacemos lo mismo pero arrastrando hacia arriba para conseguir una boca enfadada. Es importante que arrastres desde el centro de la lnea y en direccin perpendicular para que quede una curva simtrica. En el caso de las cejas, nos interesa que la curva no sea simtrica y deberemos arrastrar desde un lateral de la lnea en lugar de desde el centro.
Sencillo, verdad?
Animaciones geomtricas en 3D
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. Luego deberemos introducir interpolaciones entre las diferentes posiciones para terminar con un resultado parecido a este:
Existen multitud de movimientos complejos que se pueden imitar con animaciones Flash, es evidente que no podemos verlos todos, por lo tanto hemos elegido uno bastante comn y que nos puede servir como base para explicar unos cuantos conceptos. Se trata de imitar el movimiento de una persona corriendo. Esperamos que con estas explicaciones seas capaz de realizar variaciones ms complejas, como podrian ser hacer que el mueco practicase diferentes deportes.
Vamos a explicar cmo realizar la animacin que puedes ver en esta pgina. Para simplificar hemos dibujado una persona de forma esquemtica. A la hora
de plantearnos cmo realizar una animacin de este tipo, lo primero que debemos hacer es analizar el movimiento para ver si est compuesto por elementos que se repiten, o si se puede separar en distintos componentes o cualquier otra situacin que nos permita simplificar la animacin.
En el caso que nos ocupa podemos separar el movimiento de las distintas partes del cuerpo, piernas, brazos, cabeza y tronco. Tambin podriamos aadir manos y pies pero no lo haremos para no complicar demasiado la explicacin. Hemos creado una capa para cada parte del cuerpo, como puedes ver en esta imagen.
Otra circunstancia que podemos observar es que el movimiento del brazo izquierdo y del brazo derecho son muy parecidos , se diferencian en la distinta posicin de partida. Por lo tanto bastar con realizar un movimiento que nos servir para ambos brazos. Lo mismo ocurre con las piernas. A su vez, podemos separar el movimiento del brazo en dos movimientos, uno cuando el brazo avanza (va desde la posicin ms atrasada hasta la posicin ms adelantada) , y otro cuando el brazo retrocede (va desde la posicin ms adelantada hasta la ms
atrasada). De esta forma, con dos movieclips podremos representar el movimiento de ambos brazos. Los movieclips son idnticos salvo en el sentido del movimiento . En esta imagen puedes ver el movie clip "brazo_adelante", hemos creado una capa para la parte superior del brazo y hemos hecho que gire sobre su extremo superior (hombro). Para el antebrazo henos creado otra capa con su capa gua, la capa gua sirve para que la parte superior del antebrazo siga la trayectoria que describe el extremo inferior (codo). Tambin hemos incluido un giro en el antebrazo.
En esta imagen intentamos explicar como estn colocados los dos movieclips que forman el movimiento de los brazos en la lnea del tiempo.. El brazo izquierdo comienza con el movie clip "brazo_adelante" y contina con el movie clip "brazo_atras", mientras que el brazo derecho comienza con el movie clip "brazo_atras" y contina con el movie clip "brazo_adelante", de esta forma cuando el brazo izquierdo avance el brazo derecho retroceder.
Slo nos queda ver un detalle interesante. Hemos considerado idnticos el movimiento del brazo hacia adelante y del brazo hacia atrs y la animacin queda bastante bien. Sin embargo Podemos decir lo mismo del movimiento de las piernas? Claramente no, ya que cuando la pierna va hacia atrs debe apoyarse en el suelo, mientras que cuando va hacia adelante no debe tocar el suelo.
Si comparas las dos imgenes de la derecha podrs observar como hemos incluido un fotograma clave en la "pierna_adelante" para poder mantener la pantorrilla en posicin ms horizontal y que no toque el suelo.
Rotoscopia
La rotoscopia es una tcnica que utiliza un movimiento real como patrn para calcar las imagenes 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 importaremo s 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, slo que en la pantalla de seleccin de mtodo de importacin deberemos seleccionar Incorporar vdeo 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, coje un
Practica un poco y vers como no es nada complicado, te requerir bastante paciencia, pero la pelcula final te valdr la pena. Si quieres mantener el audio, cuando importes el vdeo selecciona que quieres mantener el audio y el vdeo separados. As cuando elimines la capa de vdeo tu animacin mantendr el sonido de la pelcula. Tus animaciones sern capaces de hablar!
Como puedes ver, le pasamos dos parmetros, el primero ser el nombre de instancia al cual nos referiremos para modificar las propiedades del clip. El segundo parmetro indica el nivel de profundidad del clip. Hemos utilizado la funcin getNextHighestDepth() para averiguar cul es el nivel superior en este clip y as posicionar nuestro dibujo en la parte superior (as no lo tapar ningn otro objeto).
Una vez creado el clip podemos pasar a dibujar sobre l. Hacerlo es muy fcil, slo debers inicializar el proceso de dibujo escribiendo: miClip.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.
Luego nos valdremos de un par de funciones: miClip.moveTo(x, y); Esto hace que el punto de dibujo se coloque en las coordenadas especificadas. Podemos empezar a pintar a partir de la coordenada (100, 100), por ejemplo. Luego nos quedar solamente dibujar lneas en el espacio que contendrn el relleno de nuestro dibujo. Utiliza la instruccin lineTo(): miClip.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. miClip.beginFill(0xFF0000); miClip.moveTo(10, 10); miClip.lineTo(10, 100); miClip.lineTo(100, 100); miClip.lineTo(100, 10); miClip.lineTo(10, 10); miClip.endFill(); Terminamos la instruccin con endFill(). Este ejemplo dibujara un cuadrado en la posicin (10, 10). Sencillo, verdad?
Podemos establecer el tipo de lnea que rodear al dibujo escribiendo lo siguiente: miClip.lineStyle(grosor, color, alfa, trazos, escala, extremos, uniones, limiteEsquinas);
Nota: Esta instruccin deber estar colocada antes de utilizar la funcin beginFill(), quedara de esta forma: miClip.lineStyle(1, 0x000000, 100); miClip.beginFill(0xFF0000); miClip.moveTo(10, 10); miClip.lineTo(10, 100); miClip.lineTo(100, 100); miClip.lineTo(100, 10); miClip.lineTo(10, 10); miClip.endFill(); Ahora explicaremos en detalle los parmetros de esta instruccin:
grosor: un nmero de 0 a 255 que indicar el grosor del borde. color: en hexadecimal, el color del borde. alfa: nivel de transparencia del borde, de 0 a 100. trazos: valor booleano, har que los anclajes de las lneas y curvas se realicen de forma exacta. De este modo los trazos se dibujarn a pxeles exactos en cualquier grosor (as no se vern lneas imprecisas). escala: especifica cmo se tendr que efectuar la escala del borde. Sus valores pueden ser "normal", que toma el modelo predeterminado; "none", que obliga a no cambiar nunca la escala del borde; "vertical", que no cambiar la escala si el objeto slo cambia su escala vertical; y "horizontal", que no cambiar la escala si el objeto slo cambia su escala horizontal. extremos: define cmo se dibujarn los extremos de los bordes,