referencia de action_script

818
Guía de referencia de ActionScript

Upload: marco-vilchez

Post on 18-Aug-2015

8 views

Category:

Education


0 download

TRANSCRIPT

  1. 1. Gua de referencia de ActionScript
  2. 2. Marcas comerciales Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware, Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates, Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite, JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live Effects, el logotipo y el diseo de MacRecorder, Macromedia, Macromedia Action!, Macromedia Flash, el logotipo y el diseo de Macromedia M, Macromedia Spectra, el logotipo y el diseo de Macromedia xRes, MacroModel, Made with Macromedia, el logotipo y el diseo de Made with Macromedia, el logotipo y el diseo de MAGIC, Mediamaker, Movie Critic, Open Sesame!, Roundtrip, Roundtrip HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what the web can be y Xtra son marcas registradas o marcas comerciales de Macromedia, Inc. y pueden estar registradas en Estados Unidos o en otras jurisdicciones, incluidas las internacionales. Otros nombres de productos, logotipos, diseos, ttulos, palabras o frases mencionados en esta publicacin pueden ser marcas comerciales, marcas de servicio o nombres registrados de Macromedia, Inc. o de otras entidades y pueden estar registrados en ciertas jurisdicciones, incluidas las internacionales. Informacin de terceros Esta gua contiene vnculos a sitios Web de terceros que no estn bajo el control de Macromedia y, por consiguiente, Macromedia no se hace responsable del contenido de dichos sitios Web. El acceso a uno de los sitios Web de terceros mencionados en esta gua ser a cuenta y riesgo del usuario. Macromedia proporciona estos vnculos nicamente como ayuda y su inclusin no implica que Macromedia se haga responsable del contenido de dichos sitios Web. La tecnologa de compresin y descompresin de voz tiene licencia de Nellymoser, Inc. (www.nellymoser.com). La tecnologa de compresin y descompresin de vdeo Sorenson Spark tiene licencia de Sorenson Media, Inc. Navegador Opera Copyright 1995-2002 Opera Software ASA y sus proveedores. Todos los derechos reservados. Limitacin de garantas de Apple APPLE COMPUTER, INC. NO GARANTIZA, DE FORMA EXPRESA NI IMPLCITA, LA COMERCIABILIDAD O IDONEIDAD PARA UN FIN DETERMINADO DEL PAQUETE DE SOFTWARE INFORMTICO INCLUIDO. LA EXCLUSIN DE GARANTAS IMPLCITAS NO EST PERMITIDA EN ALGUNOS ESTADOS. LA RESTRICCIN ANTERIOR PUEDE NO AFECTARLE. ESTA GARANTA LE PROPORCIONA DERECHOS LEGALES ESPECFICOS. PUEDE TENER OTROS DERECHOS QUE VARAN SEGN LA LEGISLACIN LOCAL. Copyright 2003 Macromedia, Inc. Todos los derechos reservados. No se permite la copia, fotocopia, reproduccin, traduccin ni la conversin en formato electrnico o legible por equipos, ya sea de forma total o parcial de este manual, sin la autorizacin previa por escrito de Macromedia, Inc. Nmero de referencia ZFL70M400SP Agradecimientos Director: Erick Vera Direccin del proyecto: Stephanie Gowin, Barbara Nelson Redaccin: Jody Bleyle, Mary Burger, Kim Diezel, Stephanie Gowin, Dan Harris, Barbara Herbert, Barbara Nelson, Shirley Ong, Tim Statler Directora de edicin: Rosana Francescato Edicin: Linda Adler, Mary Ferguson, Mary Kraemer, Noreen Maher, Antonio Padial, Lisa Stanziano, Anne Szabla Direccin de la produccin: Patrice ONeill Produccin y diseo multimedia: Adam Barnett, Christopher Basmajian, Aaron Begley, John Francis, Jeff Harmon Localizacin: Tim Hussey, Seungmin Lee, Masayo Noda, Simone Pux, Yuko Yagi, Jorge G. Villanueva Primera edicin: septiembre de 2003 Macromedia, Inc. 600 Townsend St. San Francisco, CA 94103
  3. 3. 3 CONTENIDO INTRODUCCIN: Primeros pasos con ActionScript . . . . . . . . . . . . . . . . . . . . . . . 9 Destinatarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Requisitos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Utilizacin de la documentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Convenciones tipogrficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Trminos utilizados en este documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Recursos adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 PARTE I: Bienvenido a ActionScript CAPTULO 1: Novedades de Flash MX 2004 ActionScript . . . . . . . . . . . . . . . . . 15 Elementos de lenguaje nuevos y modificados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Nuevo modelo de seguridad y archivos SWF heredados. . . . . . . . . . . . . . . . . . . . . 17 Transferencia de scripts existentes a Flash Player 7. . . . . . . . . . . . . . . . . . . . . . . . . 17 Cambios en el editor de ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Cambios en la depuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Nuevo modelo de programacin orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . 25 CAPTULO 2: Conceptos bsicos de ActionScript. . . . . . . . . . . . . . . . . . . . . . . . 27 Diferencias entre ActionScript y JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Compatibilidad de ActionScript con Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Terminologa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Asignacin de tipos de datos a elementos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Utilizacin de operadores para manipular los valores de las expresiones . . . . . . . . . 47 Especificacin de la ruta de un objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Utilizacin de funciones incorporadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Creacin de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
  4. 4. 4 Contenido CAPTULO 3: Escritura y depuracin de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Control de la ejecucin de ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Utilizacin del panel Acciones y la ventana Script . . . . . . . . . . . . . . . . . . . . . . . . . 60 Utilizacin del editor de ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Depuracin de los scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Utilizacin del panel Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Actualizacin de Flash Player para realizar pruebas . . . . . . . . . . . . . . . . . . . . . . . . 82 PARTE II: Gestin de eventos y creacin de interacciones CAPTULO 4: Gestin de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Utilizacin de mtodos de controlador de eventos . . . . . . . . . . . . . . . . . . . . . . . . . 85 Utilizacin de detectores de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Utilizacin de controladores de eventos de botones y de clips de pelcula. . . . . . . . 88 Creacin de clips de pelcula con estados de botn . . . . . . . . . . . . . . . . . . . . . . . . 89 mbito del controlador de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 mbito de la palabra clave this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 CAPTULO 5: Creacin de interacciones con ActionScript . . . . . . . . . . . . . . . . . 93 Eventos e interacciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Control de la reproduccin de archivos SWF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Creacin de interactividad y efectos visuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Anlisis de un script de ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 PARTE III: Trabajo con objetos y clases CAPTULO 6: Utilizacin de clases incorporadas . . . . . . . . . . . . . . . . . . . . . . . . 115 Clases e instancias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Informacin general sobre las clases incorporadas . . . . . . . . . . . . . . . . . . . . . . . . 116 CAPTULO 7: Trabajo con clips de pelcula. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Control de clips de pelcula con ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Llamada a varios mtodos en un solo clip de pelcula. . . . . . . . . . . . . . . . . . . . . . 124 Carga y descarga de archivos SWF adicionales. . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Especificacin de una lnea de tiempo raz para archivos SWF cargados. . . . . . . . 126 Cargar archivos JPEG en clips de pelcula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Modificacin de la posicin y el aspecto de un clip de pelcula . . . . . . . . . . . . . . 127 Clips de pelcula que se pueden arrastrar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Creacin de clips de pelcula en tiempo de ejecucin. . . . . . . . . . . . . . . . . . . . . . 128 Adicin de parmetros a clips de pelcula creados de forma dinmica . . . . . . . . . 131 Gestin de las profundidades de los clips de pelcula . . . . . . . . . . . . . . . . . . . . . . 132 Dibujo de formas con ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
  5. 5. Contenido 5 Utilizacin de clips de pelcula como mscaras . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Gestin de eventos de clip de pelcula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Asignacin de una clase a un smbolo de clip de pelcula . . . . . . . . . . . . . . . . . . . 135 Inicializacin de las propiedades de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 CAPTULO 8: Trabajo con texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Utilizacin de la clase TextField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Creacin de campos de texto durante la ejecucin. . . . . . . . . . . . . . . . . . . . . . . . 141 Utilizacin de la clase TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Aplicacin de formato al texto con hojas de estilos en cascada . . . . . . . . . . . . . . . 143 Utilizacin de texto en formato HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Creacin de texto desplazable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 CAPTULO 9: Creacin de clases con ActionScript 2.0. . . . . . . . . . . . . . . . . . . 161 Principios de la programacin orientada a objetos . . . . . . . . . . . . . . . . . . . . . . . . 162 Utilizacin de clases: un ejemplo sencillo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Creacin y utilizacin de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Miembros de clase e instancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Creacin y utilizacin de interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Introduccin a la ruta de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Utilizacin de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Importacin de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Mtodos get/set implcitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Creacin de clases dinmicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Cmo se compilan y exportan las clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 PARTE IV: Trabajo con datos y medios externos CAPTULO 10: Trabajo con datos externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Envo y carga de variables hacia y desde una fuente remota . . . . . . . . . . . . . . . . . 185 Envo de mensajes hacia y desde Flash Player. . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Funciones de seguridad de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 CAPTULO 11: Trabajo con elementos multimedia externos . . . . . . . . . . . . . . . . 201 Informacin general sobre la carga de archivos multimedia externos . . . . . . . . . . 201 Carga de archivos SWF y JPEG externos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Carga de archivos MP3 externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Lectura de etiquetas ID3 en archivos MP3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Reproduccin dinmica de archivos FLV externos. . . . . . . . . . . . . . . . . . . . . . . . 205 Precarga de archivos multimedia externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
  6. 6. 6 Contenido PARTE V: Referencia CAPTULO 12: Diccionario de ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 Entrada de muestra para la mayora de los elementos de ActionScript . . . . . . . . . 213 Entrada de muestra para clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Contenido del diccionario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Clase Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Clase Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Clase Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Clase Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Clase Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Clase Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Clase Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Clase ContextMenu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Clase ContextMenuItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Clase CustomActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 Clase Date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Clase Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Clase Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 Clase Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 Clase LoadVars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Clase LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Clase Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 Clase Microphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 Clase Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Clase MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Clase MovieClipLoader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 Clase NetConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 Clase NetStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 Clase Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 Clase Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 Clase PrintJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 Clase Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 Clase SharedObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 Clase Sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 Clase Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 Clase String. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 Clase System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 Objeto System.capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 Objeto System.security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 Clase TextField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 Clase TextField.StyleSheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705 Clase TextFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 Objeto TextSnapshot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 Clase Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 Clase XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752 Clase XMLNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 Clase XMLSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
  7. 7. Contenido 7 APNDICE A: Mensajes de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783 APNDICE B: Precedencia y asociatividad de los operadores. . . . . . . . . . . . . . 789 APNDICE C: Teclas del teclado y valores de cdigos de tecla . . . . . . . . . . . . . 791 Letras de la A a la Z y nmeros estndar del 0 al 9. . . . . . . . . . . . . . . . . . . . . . . . 791 Teclas del teclado numrico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792 Teclas de funcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793 Otras teclas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794 APNDICE D: Escritura de scripts para versiones anteriores de Flash Player . . 797 Utilizacin de versiones anteriores de Flash Player . . . . . . . . . . . . . . . . . . . . . . . . 797 Utilizacin de Flash MX 2004 para crear contenido para Flash Player 4 . . . . . . . 797 APNDICE E: Programacin orientada a objetos con ActionScript 1. . . . . . . . . 801 ActionScript 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 NDICE ALFABTICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
  8. 8. 8 Contenido
  9. 9. 9 INTRODUCCIN Primeros pasos con ActionScript Macromedia Flash MX 2004 y Flash MX Professional 2004 son las herramientas estndar de edicin profesional para la creacin de publicaciones Web de gran impacto. ActionScript es el lenguaje que deber utilizar si desea desarrollar una aplicacin en Flash. Para utilizar Flash, no es necesario utilizar ActionScript, pero si desea que los usuarios puedan interactuar, trabajar con objetos que no sean los incorporados en Flash (como por ejemplo, botones y clips de pelcula) o convertir un archivo SWF en una experiencia de usuario ms fiable, es posible que desee utilizar este lenguaje. Destinatarios En el manual se presupone que el usuario ya ha instalado Flash MX 2004 or Flash MX Professional 2004 y sabe cmo utilizarlo. Deber saber cmo colocar objetos en el escenario y cmo manipularlos en el entorno de edicin de Flash. Si ha escrito programas anteriormente, ActionScript le resultar familiar. Pero aunque no haya escrito ninguno, no le costar familiarizarse con ActionScript. Es fcil empezar con comandos muy simples y aumentar el grado de complejidad conforme se va avanzando. Requisitos del sistema Los componentes de ActionScript no tienen ningn requisito del sistema adicional a los de Flash MX 2004 or Flash MX Professional 2004. No obstante, en la documentacin se presupone que el usuario utiliza la configuracin de publicacin predeterminada para los archivos Flash: Flash Player 7 y ActionScript 2.0. Si cambia alguno de estos valores, es posible que las explicaciones y los ejemplos de cdigo que se muestran en la documentacin no sean vlidos. Utilizacin de la documentacin Este documento proporciona informacin general sobre la sintaxis de ActionScript, sobre cmo utilizar ActionScript al trabajar con distintos tipos de objetos y ofrece, tambin, detalles sobre la sintaxis y el uso de cada uno de los elementos de lenguaje. Empiece por aprender la terminologa y los conceptos bsicos utilizados en el resto del documento (vase el Captulo 2, Conceptos bsicos de ActionScript, en la pgina 27). Despus, aprenda los mecanismos para escribir y depurar scripts de Flash (vase el Captulo 3, Escritura y depuracin de scripts, en la pgina 57).
  10. 10. 10 Introduccin: Primeros pasos con ActionScript Antes de escribir sus propios scripts, debe completar las lecciones Creacin de scripts con ActionScript y Creacin de un formulario con lgica condicional y envo de datos, que proporcionan una introduccin prctica para trabajar con ActionScript. Para encontrar estas lecciones, seleccione Ayuda > Cmo > Inicio rpido. Cuando comprenda los conceptos bsicos, estar preparado para utilizar la informacin incluida en el resto del documento, ya que est relacionada con el efecto especfico que desea conseguir. Por ejemplo, si desea aprender a escribir un script que realice una accin concreta cuando un usuario haga clic con el ratn, consulte Captulo 4, Gestin de eventos, en la pgina 85. Cuando encuentre informacin sobre un comando concreto que desee utilizar, puede consultar la entrada correspondiente en el Captulo 12, Diccionario de ActionScript, en la pgina 213; todos los elementos del lenguaje estn enumerados en orden alfabtico. Convenciones tipogrficas En este manual se utilizan las siguientes convenciones tipogrficas: La fuente para cdigo indica que se trata de cdigo de ActionScript. La fuente para cdigo en cursiva indica que es un elemento, por ejemplo un nombre de objeto o un parmetro de ActionScript, que se reemplaza con el texto escrito por el usuario al escribir un script. Trminos utilizados en este documento En este manual se utilizan los trminos siguientes: Usted hace referencia al desarrollador que escribe un script o una aplicacin. El usuario hace referencia a la persona que ejecutar los scripts y las aplicaciones. La fase de compilacin es la fase en la que se publica, exporta, prueba o depura un documento. El tiempo de ejecucin es el espacio de tiempo en el que se ejecuta un script en Flash Player. Los trminos de ActionScript como mtodo y objeto se definen en el Captulo 2, Conceptos bsicos de ActionScript, en la pgina 27. Recursos adicionales La documentacin especfica sobre Flash y los productos relacionados se proporciona por separado. Para informacin sobre cmo trabajar en el entorno de edicin de Flash, consulte el apartado Utilizacin de Flash de la Ayuda. Si desea informacin sobre los componentes, consulte el apartado Utilizacin de componentes de la Ayuda. Si desea informacin sobre cmo crear aplicaciones de comunicacin con Flash Communication Server, consulte Desarrollo de aplicaciones con Flash Communication Server y Administrando Flash Communication Server. Para ms informacin sobre el acceso a los servicios Web con aplicaciones de Flash, consulte Utilizacin de convirtiendo a remoto de Flash.
  11. 11. Recursos adicionales 11 El sitio Web Macromedia DevNet (http://www.macromedia.com/go/developer_es) se actualiza regularmente con la ltima informacin sobre Flash, adems de consejos de usuarios expertos, temas ms complejos, ejemplos, sugerencias y otras actualizaciones. Visite el sitio Web regularmente para conocer las ltimas noticias sobre Flash y cmo sacar el mximo partido del programa. El centro de soporte de Macromedia Flash (http://www.macromedia.com/go/flash_support_sp) proporciona notas tcnicas, documentacin actualizada y vnculos a otros recursos de la comunidad Flash.
  12. 12. 12 Introduccin: Primeros pasos con ActionScript
  13. 13. PARTE I Bienvenido a ActionScript En esta seccin se incluye informacin bsica acerca del lenguaje ActionScript. En el captulo 1 se incluye informacin acerca de las novedades y modificaciones de ActionScript y Flash Player 7. Si ha utilizado ActionScript anteriormente, asegrese de leer esta informacin detenidamente. Si no tiene experiencia con ActionScript, lea los captulos 2 y 3 para tener una buena base para entender la terminologa y la sintaxis de ActionScript, as como para aprender a crear y depurar scripts. Captulo 1: Novedades de Flash MX 2004 ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Captulo 2: Conceptos bsicos de ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Captulo 3: Escritura y depuracin de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 PARTEI
  14. 14. 15 CAPTULO 1 Novedades de Flash MX 2004 ActionScript Macromedia Flash MX 2004 y Macromedia Flash MX Professional 2004 proporcionan varias mejoras que facilitan la escritura de scripts ms slidos con el lenguaje ActionScript. Entre estas nuevas funciones, que se explican ms adelante en este captulo, se incluyen nuevos elementos de lenguaje, herramientas mejoradas para la edicin y la depuracin (vase Cambios en el editor de ActionScript en la pgina 23 y Cambios en la depuracin en la pgina 24), y la introduccin de un modelo de programacin ms orientada a objetos (vase Nuevo modelo de programacin orientada a objetos en la pgina 25). En este captulo tambin se incluye una amplia seccin que debe leer atentamente si tiene previsto publicar en Flash Player 7 archivos Flash MX existentes o archivos de una versin anterior (vase Transferencia de scripts existentes a Flash Player 7 en la pgina 17). Elementos de lenguaje nuevos y modificados En esta seccin se describen los elementos del lenguaje ActionScript nuevos o que han cambiado en Flash MX 2004. Para utilizar dichos elementos en los scripts, debe utilizar Flash Player 7 (predeterminado) al publicar los documentos. Los mtodos Array.sort() y Array.sortOn() permiten aadir parmetros para especificar opciones de ordenacin adicionales, como orden ascendente o descendente, si se debe distinguir entre maysculas y minsculas al ordenar, etc. Las propiedades Button.menu, MovieClip.menu y TextField.menu funcionan con las clases ContextMenu y ContextMenuItem para permitirle asociar elementos de men contextuales con objetos Button, MovieClip o TextField. La Clase ContextMenu y la Clase ContextMenuItem permiten personalizar el men contextual que se muestra cuando un usuario hace clic con el botn derecho (Microsoft Windows) o hace clic mientras presiona la tecla Control (Macintosh) en Flash Player. La Clase Error y los comandos throw y try..catch..finally permiten implementar una gestin de excepciones ms fiable. Los mtodos LoadVars.addRequestHeader() y XML.addRequestHeader() aaden o cambian encabezados de peticin HTTP (como Content-Type o SOAPAction) enviados con acciones POST. La funcin MMExecute() permite enviar comandos de la interfaz API JavaScript de Flash desde ActionScript.
  15. 15. 16 Captulo 1: Novedades de Flash MX 2004 ActionScript (Slo para Windows) El detector de eventos Mouse.onMouseWheel se genera cuando el usuario se desplaza utilizando la rueda del ratn. El mtodo MovieClip.getNextHighestDepth() permite crear instancias de clip de pelcula durante la ejecucin y garantizar que sus objetos aparecern delante de los otros objetos en el espacio del orden z de un clip de pelcula principal. El mtodo MovieClip.getInstanceAtDepth() permite acceder a instancias de clip de pelcula creadas de forma dinmica utilizando la profundidad como ndice de bsqueda. El mtodo MovieClip.getSWFVersion() permite determinar qu versin de Flash Player admite el archivo SWF cargado. El mtodo MovieClip.getTextSnapshot() y el Objeto TextSnapshot permiten trabajar con texto que se encuentra en campos de texto estticos de un clip de pelcula. La propiedad MovieClip._lockroot permite especificar que un clip de pelcula actuar como _root para los clips de pelcula que se carguen en l o que el significado de _root en un clip de pelcula no cambiar si dicho clip se carga en otro clip de pelcula. La Clase MovieClipLoader permite controlar el progreso de los archivos a medida que se cargan en clips de pelcula. La Clase NetConnection y la Clase NetStream permiten transmitir archivos de vdeo locales (archivos FLV). La Clase PrintJob proporciona, tanto a usted como al usuario, ms control sobre la impresin desde Flash Player. El controlador de eventos Sound.onID3 proporciona acceso a datos ID3 asociados con un objeto Sound que contiene un archivo MP3. La propiedad Sound.ID3 proporciona acceso a los metadatos que forman parte de un archivo MP3. La Clase System tiene objetos y mtodos nuevos, mientras que el Objeto System.capabilities tiene varias propiedades nuevas. La propiedad TextField.condenseWhite permite quitar el espacio en blanco adicional de los campos de texto HTML que se muestran en un navegador. La propiedad TextField.mouseWheelEnabled permite especificar si el contenido de un campo de texto se debe desplazar cuando se sita el puntero del ratn sobre un campo de texto y el usuario hace girar la rueda del ratn. La Clase TextField.StyleSheet permite crear un objeto de hoja de estilos que contenga reglas de formato de texto, como tamao de fuente, color y otros estilos de formato. La propiedad TextField.styleSheet permite adjuntar un objeto de hoja de estilos a un campo de texto. El mtodo TextFormat.getTextExtent() acepta un nuevo parmetro y el objeto que devuelve contiene un nuevo miembro. El mtodo XML.addRequestHeader() permite aadir o cambiar encabezados de peticin HTTP (como Content-Type o SOAPAction) enviados con acciones POST.
  16. 16. Transferencia de scripts existentes a Flash Player 7 17 Nuevo modelo de seguridad y archivos SWF heredados Las reglas que utiliza Flash Player para determinar si dos dominios son el mismo han cambiado en Flash Player 7. Adems, han cambiado las reglas que determinan cundo y cmo un archivo SWF proporcionado desde un dominio HTTP puede acceder a un archivo SWF o cargar datos de un dominio HTTPS. En la mayora de los casos, estos cambios no le afectarn, a menos que est transfiriendo los archivos SWF existentes a Flash Player 7. No obstante, si tiene publicados archivos SWF para Flash Player 6 o una versin anterior que cargan datos desde un archivo almacenado en un servidor, y el archivo SWF que efecta la llamada se ejecuta en Flash Player 7, el usuario puede ver un cuadro de dilogo que antes no apareca, en el que se le pregunta si desea otorgar acceso. Puede evitar la aparicin de este cuadro de dilogo implementando un archivo de poltica en el sitio en el que se guardan los datos. Para obtener ms informacin sobre este cuadro de dilogo, consulte Compatibilidad con modelos de seguridad de Flash Player anteriores en la pgina 199. Puede que tambin tenga que implementar un archivo de poltica si utiliza bibliotecas compartidas en tiempo de ejecucin. Si el archivo SWF que se est cargando o que se ha cargado se ha publicado para Flash Player 7 y los archivos que se estn cargando y los que se han cargado no se encuentran disponibles en el mismo dominio exacto, utilice un archivo de poltica para permitir el acceso. Para obtener ms informacin sobre los archivos de poltica, consulte Carga de datos de varios dominios en la pgina 198. Transferencia de scripts existentes a Flash Player 7 Al igual que en cualquier nueva versin, Flash Player 7 admite ms comandos de ActionScript que las versiones anteriores del reproductor; estos comandos le permitirn implementar scripts ms slidos. (Consulte Elementos de lenguaje nuevos y modificados en la pgina 15.) Sin embargo, si ya ha utilizado alguno de estos comandos en sus scripts existentes, es posible que el script no funcione correctamente al publicarlo en Flash Player 7. Por ejemplo, si tiene un script con una funcin denominada Error, el script puede compilarse aparentemente, pero es posible que no funcione de la forma prevista en Flash Player 7, ya que Error es una clase incorporada (y, por lo tanto, una palabra reservada) en ActionScript. Puede arreglar el script cambiando el nombre de la funcin Error por otro, como ErrorCondition. Adems, en Flash Player 7 se incluyen varios cambios que influyen en cmo un archivo SWF puede acceder a otro archivo SWF, cmo pueden cargarse los datos externos y cmo se puede acceder a la configuracin y los datos locales (como la configuracin de confidencialidad y los objetos compartidos localmente persistentes). Por ltimo, el comportamiento de algunas de las funciones existentes ha cambiado. Si tiene scripts escritos para Flash Player 6 o para una versin anterior que desea publicar para Flash Player 7, es posible que necesite modificarlos para que se adapten a la implementacin de Flash Player 7 y funcionen correctamente. Estas modificaciones se tratan en esta seccin.
  17. 17. 18 Captulo 1: Novedades de Flash MX 2004 ActionScript Conformidad con el estndar ECMA-262, edicin 4 Se han implementado varios cambios en Flash Player 7 para adaptarlo ms a la propuesta ECMA- 262, edicin 4 (consulte www.mozilla.org/js/language/es4/index.html). Adems de las tcnicas de programacin basadas en clases disponibles en ActionScript 2.0 (vase Nuevo modelo de programacin orientada a objetos en la pgina 25), se han aadido otras funciones y se han modificado determinados comportamientos. Adems, al publicar para Flash Player 7 y utilizar ActionScript 2.0, se puede convertir un tipo de objeto en otro. Para ms informacin, consulte Conversin de objetos en la pgina 41. Para utilizar estas funciones no es necesario actualizar los scripts existentes; sin embargo, utilcelas si publica sus scripts en Flash Player 7 y los revisa y mejora constantemente. A diferencia de los cambios mencionados anteriormente, los cambios detallados en la tabla siguiente (algunos de los cuales tambin mejoran la conformidad con ECMA) pueden hacer que los scripts existentes funcionen de forma diferente a como funcionaban anteriormente. Si ha utilizado estas funciones en scripts existentes que desea publicar en Flash Player 7, repase los cambios para comprobar si el cdigo sigue funcionando correctamente o si debe volver a escribirlo. En concreto, puesto que undefined se evala de forma distinta en determinados casos, debe inicializar todas las variables en los scripts que transfiera a Flash Player 7. Archivo SWF publicado para Flash Player 7 Archivo SWF publicado para versiones anteriores de Flash Player Se admite la distincin entre maysculas y minsculas (los nombres de variables que se diferencian slo en este aspecto se interpretan como variables distintas). Este cambio tambin afecta a los archivos cargados con #include y a las variables externas cargadas con LoadVars.load(). Para ms informacin, consulte Distincin entre maysculas y minsculas en la pgina 31. No se admite la distincin entre maysculas y minsculas (los nombres de variables que se diferencian slo en este aspecto se interpretan como las mismas variables). La evaluacin de undefined en un contexto numrico devuelve NaN. myCount +=1; trace(myCount); // NaN La evaluacin de undefined en un contexto numrico devuelve 0. myCount +=1; trace(myCount); // 1 Cuando undefined se convierte en una cadena, el resultado es undefined. firstname = "Joan "; lastname = "Flender"; trace(firstname + middlename + lastname); // Joan undefinedFlender Cuando undefined se convierte en una cadena, el resultado es "" (cadena vaca). firstname = "Joan "; lastname = "Flender"; trace(firstname + middlename + lastname); // Joan Flender
  18. 18. Transferencia de scripts existentes a Flash Player 7 19 Reglas de nombres de dominio para la configuracin y los datos locales En Flash Player 6, se utilizan de forma predeterminada las reglas de coincidencia de superdominio al acceder a la configuracin local (como los permisos de acceso a la cmara o al micrfono) o a los datos localmente persistentes (objetos compartidos). Es decir, la configuracin y los datos para los archivos SWF albergados en here.xyz.com, there.xyz.com y xyz.com estn compartidos y se almacenan todos en xyz.com. En Flash Player 7, se utilizan de forma predeterminada las reglas de coincidencia de dominio exacto. Es decir, la configuracin y los datos para un archivo albergado en here.xyz.com se almacenan en here.xyz.com, la configuracin y los datos para un archivo albergado en there.xyz.com se almacenan en there.xyz.com, y as sucesivamente. La nueva propiedad System.exactSettings permite especificar las reglas que se van a utilizar. Esta propiedad se admite para los archivos publicados en Flash Player 6 o una versin posterior. Para los archivos publicados en Flash Player 6, el valor predeterminado es false, lo cual significa que se utilizarn las reglas de coincidencia de superdominio. Para los archivos publicados en Flash Player 7, el valor predeterminado es true, lo cual significa que se utilizarn las reglas de coincidencia de dominio exacto. Si utiliza la configuracin o los datos locales persistentes y desea publicar un archivo SWF de Flash Player 6 en Flash Player 7, es posible que tenga que establecer este valor en false en el archivo transferido. Para ms informacin, consulte System.exactSettings en la pgina 663. Acceso a varios dominios y subdominios entre archivos SWF Al desarrollar una serie de archivos SWF que se comunican entre s por ejemplo, cuando utiliza loadMovie(), MovieClip.loadMovie(), MovieClipLoader.LoadClip() u objetos LocalConnection, puede albergar las pelculas en diferentes dominios, o en diferentes subdominios de un mismo superdominio. En los archivos publicados en Flash Player 5 o una versin anterior, no hay restricciones en el acceso a varios dominios o subdominios. Cuando se convierte una cadena en un valor booleano, el resultado es true si la cadena tiene una longitud mayor que cero; el resultado es false para una cadena vaca. Cuando se convierte una cadena en un valor booleano, la cadena se convierte primeramente en un nmero; el resultado es true si el nmero es diferente de cero; en caso contrario, el resultado es false. Cuando se define la longitud de una matriz, slo se puede utilizar una cadena numrica vlida. Por ejemplo, "6" funciona, pero " 6" o "6xyz" no. my_array=new Array(); my_array[" 6"] ="x"; trace(my_array.length); // 0 my_array["6xyz"] ="x"; trace(my_array.length); // 0 my_array["6"] ="x"; trace(my_array.length); // 7 Cuando se define la longitud de una matriz, incluso puede utilizarse una cadena numrica mal formada. my_array=new Array(); my_array[" 6"] ="x"; trace(my_array.length); // 7 my_array["6xyz"] ="x"; trace(my_array.length); // 7 my_array["6"] ="x"; trace(my_array.length); // 7 Archivo SWF publicado para Flash Player 7 Archivo SWF publicado para versiones anteriores de Flash Player
  19. 19. 20 Captulo 1: Novedades de Flash MX 2004 ActionScript En los archivos publicados en Flash Player 6, se poda utilizar el controlador LocalConnection.allowDomain o el mtodo System.security.allowDomain() para especificar que se permita el acceso a varios dominios (por ejemplo, para permitir que un archivo en someOtherSite.com pudiera acceder a un archivo en someSite.com), y no se necesitaba ningn comando para permitir el acceso a subdominios (por ejemplo, un archivo en store.someSite.com poda acceder a un archivo en www.someSite.com). Los archivos publicados en Flash Player 7 implementan el acceso entre archivos SWF de forma distinta a como lo hacan en versiones anteriores, de dos formas. En primer lugar, Flash Player 7 implementa las reglas de coincidencia de dominio exacto en lugar de las reglas de coincidencia de superdominio. Por lo tanto, el archivo al cual se accede (aunque se haya publicado en una versin de Player anterior a Flash Player 7) debe permitir explcitamente el acceso a varios dominios o subdominios; este tema se trata a continuacin. En segundo lugar, un archivo albergado en un sitio que utilice un protocolo seguro (HTTPS) debe permitir explcitamente el acceso de un archivo albergado en un sitio que utilice un protocolo inseguro (HTTP o FTP); este tema se trata en la siguiente seccin (Acceso de protocolo HTTP a HTTPS entre archivos SWF en la pgina 21). Puesto que Flash Player 7 implementa reglas de coincidencia de dominio exacto en lugar de reglas de coincidencia de superdominio, es posible que tenga que modificar los scripts existentes si quiere acceder a ellos desde archivos publicados en Flash Player 7. Los archivos modificados se podrn publicar igualmente en Flash Player 6. Si ha utilizado alguna sentencia LocalConnection.allowDomain() o System.security.allowDomain() en sus archivos y ha especificado que se permita el acceso a sitios de superdominio, deber cambiar sus parmetros de modo que especifiquen dominios exactos. El cdigo siguiente muestra un ejemplo de los tipos de cambios que puede tener que realizar: // Comandos de Flash Player 6 en un archivo SWF en www.anyOldSite.com // permitir el acceso de los archivos SWF albergados en www.someSite.com // o en store.someSite.com System.security.allowDomain("someSite.com"); my_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="someSite.com"); } // Comandos correspondientes para permitir el acceso de los archivos SWF // publicados en Flash Player 7 System.security.allowDomain("www.someSite.com", "store.someSite.com"); my_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="www.someSite.com" || sendingDomain=="store.someSite.com"); } Tendr que aadir sentencias como stas a sus archivos si actualmente no las est utilizando. Por ejemplo, si el archivo SWF est albergado en www.someSite.com y desea permitir el acceso de un archivo SWF publicado en Flash Player 7 en store.someSite.com, deber aadir sentencias como las siguientes al archivo que est en www.someSite.com (el archivo que est en www.someSite.com podr publicarse igualmente en Flash Player 6): System.security.allowDomain("store.someSite.com"); my_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="store.someSite.com"); }
  20. 20. Transferencia de scripts existentes a Flash Player 7 21 En resumen, tendr que modificar sus archivos aadiendo o cambiando sentencias allowDomain si quiere publicar archivos en Flash Player 7 que cumplen las siguientes condiciones: Ha implementado la creacin de scripts entre archivos SWF (mediante loadMovie(), MovieClip.loadMovie(), MovieClipLoader.LoadClip() u objetos LocalConnection). El archivo SWF (de cualquier versin) llamado no est albergado en un sitio que utiliza un protocolo seguro (HTTPS) o bien los archivos SWF que efectan la llamada y que reciben la llamada estn albergados en sitios HTTPS. Si slo se alberga en HTTPS el archivo SWF llamado, consulte Acceso de protocolo HTTP a HTTPS entre archivos SWF en la pgina 21. Los archivos SWF no estn en el mismo dominio (por ejemplo, un archivo est en www.domain.com y otro en store.domain.com). Deber realizar los siguientes cambios: Si el archivo SWF llamado se publica en Flash Player 7, incluya System.security.allowDomain o LocalConnection.allowDomain en el mismo, para que utilice la coincidencia de nombre de dominio exacto. Si el archivo SWF llamado se publica en Flash Player 6, modifquelo aadiendo o cambiando una sentencia System.security.allowDomain o LocalConnection.allowDomain, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Puede publicar el archivo modificado en Flash Player 6 o 7. Si el archivo SWF llamado se publica en Flash Player 5 o una versin anterior, transfiralo a Flash Player 6 o 7 y aada una sentencia System.security.allowDomain, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Los objetos LocalConnection no se admiten en Flash Player 5 o una versin anterior. Acceso de protocolo HTTP a HTTPS entre archivos SWF Tal como se ha explicado en la seccin anterior, las reglas para el acceso a varios dominios y para el acceso a subdominios han cambiado en Flash Player 7. Adems de las reglas de coincidencia de dominio exacto que ahora se implementan, debe permitir explcitamente que los archivos albergados en sitios que utilizan un protocolo inseguro puedan acceder a los archivos albergados en sitios que utilizan un protocolo seguro (HTTPS). Segn si el archivo llamado se publica en Flash Player 7 o Flash Player 6, deber implementar una de las sentencias allowDomain (consulte Acceso a varios dominios y subdominios entre archivos SWF en la pgina 19) o utilizar las nuevas sentencias LocalConnection.allowInsecureDomain o System.security.allowInsecureDomain(). Advertencia: al implementar una sentencia allowInsecureDomain() se pone en juego la seguridad ofrecida por el protocolo HTTPS. Estos cambios slo deben realizarse si no puede reorganizar el sitio de manera que todos los archivos SWF se encuentren disponibles en el protocolo HTTPS.
  21. 21. 22 Captulo 1: Novedades de Flash MX 2004 ActionScript El cdigo siguiente muestra un ejemplo de los tipos de cambios que puede tener que realizar: // Comandos en un archivo SWF de Flash Player 6 en https://www.someSite.com // permitir el acceso de los archivos SWF de Flash Player 7 albergados // en http://www.someSite.com o en http://www.someOtherSite.com System.security.allowDomain("someOtherSite.com"); my_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="someOtherSite.com"); } // Comandos correspondientes en un archivo SWF de Flash Player 7 // permitir el acceso de los archivos SWF de Flash Player 7 albergados // en http://www.someSite.com o en http://www.someOtherSite.com System.security.allowInsecureDomain("www.someSite.com", "www.someOtherSite.com"); my_lc.allowInsecureDomain = function(sendingDomain) { return(sendingDomain=="www.someSite.com" || sendingDomain=="www.someOtherSite.com"); } Tendr que aadir sentencias como stas a sus archivos si actualmente no las est utilizando. Deber hacerse una modificacin aunque ambos archivos se encuentren en el mismo dominio (por ejemplo, si un archivo en http://www.domain.com llama a otro archivo en https:// www.domain.com). En resumen, deber modificar sus archivos aadiendo o cambiando sentencias si quiere publicar archivos en Flash Player 7 que cumplen las siguientes condiciones: Ha implementado la creacin de scripts entre archivos SWF (mediante loadMovie(), MovieClip.loadMovie(), MovieClipLoader.LoadClip() u objetos LocalConnection). El archivo que efecta la llamada no se alberga en un sitio con protocolo HTTPS, y el archivo llamado s que utiliza HTTPS. Deber realizar los siguientes cambios: Si el archivo llamado se publica en Flash Player 7, incluya System.security.allowInsecureDomain o LocalConnection.allowInsecureDomain en el mismo, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Esta sentencia es necesaria aunque el archivo SWF que efecta la llamada y el archivo SWF llamado se encuentren en el mismo dominio. Si el archivo llamado se publica en Flash Player 6 o una versin anterior, y tanto el archivo que efecta la llamada como el archivo llamado se encuentran en el mismo dominio (por ejemplo, un archivo en http://www.domain.com llama a otro archivo en https://www.domain.com), no es necesaria ninguna modificacin. Si el archivo llamado se publica en Flash Player 6, los archivos no se encuentran en el mismo dominio y no desea transferir el archivo llamado a Flash Player 7, modifique dicho archivo aadiendo o cambiando una sentencia System.security.allowDomain o LocalConnection.allowDomain, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Si el archivo llamado se publica en Flash Player 6 y desea transferirlo a Flash Player 7, incluya System.security.allowInsecureDomain o LocalConnection.allowInsecureDomain en el mismo, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Esta sentencia es necesaria aunque ambos archivos se encuentren en el mismo dominio.
  22. 22. Cambios en el editor de ActionScript 23 Si el archivo llamado se publica en Flash Player 5 o una versin anterior, y los archivos no se encuentran en el mismo dominio, puede realizar una de estas dos acciones. Puede transferir el archivo llamado a Flash Player 6 y aadir o cambiar una sentencia System.security.allowDomain, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin, o bien puede transferir el archivo llamado a Flash Player 7 e incluir una sentencia System.security.allowInsecureDomain en el mismo, para que utilice la coincidencia de nombre de dominio exacto, tal como se muestra en los ejemplos de cdigo explicados en esta misma seccin. Archivos de poltica de servidor para permitir el acceso a los datos Un documento de Flash puede cargar datos desde una fuente externa mediante una de las siguientes llamadas para cargar datos: XML.load(), XML.sendAndLoad(), LoadVars.load(), LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum(), MovieClip.loadVariables(), XMLSocket.connect() y Macromedia Flash Remoting (NetServices.createGatewayConnection). Asimismo, un archivo SWF puede importar bibliotecas compartidas en tiempo de ejecucin (RSL) o elementos definidos en otro archivo SWF durante el tiempo de ejecucin. De forma predeterminada, los datos o las RSL deben residir en el mismo dominio que el archivo SWF que est cargando los medios o datos externos. Para que los datos y los elementos de las bibliotecas compartidas en tiempo de ejecucin puedan ser utilizados por los archivos SWF de diferentes dominios, utilice un archivo de poltica para distintos dominios. Un archivo de poltica para distintos dominios es un archivo XML que permite al servidor indicar que sus datos y documentos estn disponibles para los archivos SWF de determinados dominios o de todos los dominios. Cualquier archivo SWF que se encuentre disponible en un dominio especificado por el archivo de poltica del servidor podr acceder a los datos y RSL desde dicho servidor. Si est cargando datos externos, debe crear archivos de poltica aunque no tenga previsto transferir ningn archivo a Flash Player 7. Si utiliza RSL, deber crear archivos de poltica si el archivo que efecta la llamada o el archivo llamado se publica en Flash Player 7. Para ms informacin, consulte Carga de datos de varios dominios en la pgina 198. Cambios en el editor de ActionScript El editor de ActionScript se ha actualizado para que sea ms consistente y ms fcil de utilizar. En esta seccin se ofrece un resumen de dichos cambios. Ajustar texto Ahora puede utilizar el men emergente Opciones de los paneles Script, Depurador y Salida para activar o desactivar el ajuste de texto. Tambin puede alternar el ajuste de texto mediante el men emergente del panel Acciones. El mtodo abreviado de teclado es Ctrl+Mays+W (Windows) o Comando+Mays+W (Macintosh). Visualizacin de la ayuda contextual Cuando el puntero se sita sobre un elemento de lenguaje ActionScript en la caja de herramientas Acciones o en el panel Script, puede utilizar el elemento Ver ayuda del men contextual para ver una pgina de ayuda relativa al elemento. Importacin de scripts Cuando selecciona Importar script en el men emergente del panel Acciones, el script importado se copia en el script en el punto de insercin del archivo de cdigo. En versiones anteriores de Flash, cuando se importaba un script se sobrescriba el contenido del script existente.
  23. 23. 24 Captulo 1: Novedades de Flash MX 2004 ActionScript Puntos de corte con un solo clic Para aadir un punto de corte de depuracin antes de una lnea de cdigo en el panel Depurador o el panel Script del panel Acciones, puede hacer clic en el margen izquierdo. En versiones anteriores de Flash, al hacer clic en el margen izquierdo se seleccionaba una lnea de cdigo. Ahora, para seleccionar una lnea de cdigo se debe presionar Ctrl y hacer clic (Windows) o presionar Comando y hacer clic (Macintosh). Desaparicin de los modos Normal y Experto en el panel Acciones En versiones anteriores de Flash, poda trabajar en el panel Acciones en modo Normal (se especificaban las opciones y los parmetros para crear el cdigo) o en modo Experto (se aadan comandos directamente en el panel Script). En Flash MX 2004 y Flash MX Professional 2004, slo se puede utilizar el panel Acciones aadiendo comandos directamente en el panel Script. Sigue siendo posible arrastrar comandos de la caja de herramientas Acciones al panel Script o utilizar el botn Aadir (+) situado encima del panel Script para aadir comandos a un script. Fijacin de varios scripts Puede fijar varios scripts dentro de un archivo FLA a lo largo de la parte inferior del panel Script en el panel Acciones. En las versiones anteriores de Flash slo se puede fijar un script a la vez. Navegador de scripts Ahora el panel Acciones contiene dos paneles en la parte izquierda: la caja de herramientas Acciones y un nuevo navegador de scripts. Dicho navegador de scripts es una representacin visual de la estructura del archivo FLA; puede desplazarse por el archivo FLA para localizar cdigo de ActionScript. Ventana Script integrada para editar archivos externos (slo para Flash Professional) Puede utilizar el editor de ActionScript en una ventana Script (independiente del panel Acciones) para escribir y editar archivos de script externos. Ahora se admiten la aplicacin de color a la sintaxis, las sugerencias para el cdigo y otras preferencias en la ventana Script; adems, la caja de herramientas Acciones tambin est disponible. Para ver la ventana Script, utilice Archivo > Nuevo y seleccione el tipo de archivo externo que desea editar. Puede tener varios archivos externos abiertos al mismo tiempo; los nombres de archivo se muestran en las fichas situadas en la parte superior de la ventana Script (las fichas slo aparecen en Windows). Cambios en la depuracin En esta seccin se describen los cambios que mejoran la depuracin de los scripts. La ventana Salida ahora es el panel Salida Ahora puede mover y acoplar el panel Salida igual que lo hara con cualquier otro panel de Flash. Informe de errores mejorado durante la compilacin Adems de proporcionar una gestin de excepciones ms fiable, ActionScript 2.0 proporciona diversos errores de tiempo de compilacin nuevos. Para ms informacin, consulte Apndice A, Mensajes de error, en la pgina 783. Gestin de excepciones mejorada La clase Error y los comandos throw y try..catch..finally permiten implementar una gestin de excepciones ms fiable.
  24. 24. Nuevo modelo de programacin orientada a objetos 25 Nuevo modelo de programacin orientada a objetos El lenguaje ActionScript ha crecido y se ha desarrollado desde su introduccin hace algunos aos. Con cada nueva versin de Flash se han aadido al lenguaje palabras clave, objetos, mtodos y otros elementos adicionales. No obstante, a diferencia de las versiones anteriores de Flash, Flash MX 2004 y Flash MX Professional 2004 introducen diversos elementos de lenguaje nuevos que implementan la programacin orientada a objetos de una manera ms estndar. Como estos elementos de lenguaje constituyen una mejora significativa del ncleo del lenguaje ActionScript, representan una nueva versin de ActionScript por s mismos: ActionScript 2.0. ActionScript 2.0 no es un lenguaje nuevo. Comprende un conjunto central de elementos de lenguaje que facilitan el desarrollo de programas orientados a objetos. Con la introduccin de palabras clave tales como class, interface, extends e implements, ahora la sintaxis de ActionScript resulta ms sencilla de aprender para los programadores que estn familiarizados con otros lenguajes. Los programadores sin experiencia pueden aprender una terminologa ms estndar que podrn aplicar a otros lenguajes orientados a objetos que puedan estudiar en el futuro. ActionScript 2.0 admite todos los elementos estndar del lenguaje ActionScript; simplemente, permite escribir scripts que se ajustan mejor a los estndares utilizados en otros lenguajes orientados a objetos, como Java. ActionScript 2.0 resultar de especial inters para los desarrolladores con conocimientos intermedios o avanzados de Flash que crean aplicaciones que requieren la implementacin de clases y subclases. ActionScript 2.0 tambin permite declarar el tipo de objeto de una variable al crearla (vase Strict data typing en la pgina 40) y proporciona una gestin de errores de compilador muy mejorada (vase Apndice A, Mensajes de error, en la pgina 783). A continuacin, se indican los nuevos elementos de lenguaje de ActionScript 2.0. class extends implements interface dynamic static public private get set import
  25. 25. 26 Captulo 1: Novedades de Flash MX 2004 ActionScript Puntos clave de ActionScript 2.0: Los scripts que utilizan ActionScript 2.0 para definir clases o interfaces deben almacenarse como archivos de script externos, con una sola clase definida en cada script; es decir, las clases y las interfaces no pueden definirse en el panel Acciones. Puede importar archivos de clase individuales implcitamente (almacenndolos en una ubicacin especificada por rutas de bsqueda globales o especficas del documento y luego utilizndolos en un script) o explcitamente (utilizando el comando import); puede importar paquetes (conjuntos de archivos de clase en un directorio) utilizando caracteres comodn. Las aplicaciones desarrolladas con ActionScript 2.0 son compatibles con Flash Player 6 y versiones posteriores. Atencin: la configuracin de publicacin predeterminada para los nuevos archivos creados en Flash MX 2004 es ActionScript 2.0. Si tiene previsto modificar un archivo FLA existente de modo que utilice la sintaxis de ActionScript 2.0, asegrese de que el archivo FLA tiene especificado ActionScript 2.0 en su configuracin de publicacin. Si no lo tiene especificado, el archivo no se compilar de forma correcta, aunque Flash no genere errores de compilador. Para ms informacin sobre la utilizacin de ActionScript 2.0 para escribir programas orientados a objetos en Flash, consulte Captulo 9, Creacin de clases con ActionScript 2.0, en la pgina 161.
  26. 26. 27 CAPTULO 2 Conceptos bsicos de ActionScript ActionScript sigue reglas gramaticales y de puntuacin que determinan qu caracteres y palabras se utilizan para dar significado a una sentencia y el orden en que se deben escribir. Por ejemplo, en espaol, una oracin termina con un punto. En ActionScript, se utiliza un punto y coma para finalizar una sentencia. A continuacin se detallan las reglas generales que se aplican a todo el lenguaje ActionScript. La mayora de los trminos de ActionScript tambin tienen sus propios requisitos; para saber cules son las reglas de un trmino determinado, consulte la entrada correspondiente en el Captulo 12, Diccionario de ActionScript, en la pgina 213. Diferencias entre ActionScript y JavaScript ActionScript es parecido al lenguaje de programacin JavaScript. No es necesario tener conocimientos de JavaScript para utilizar y aprender ActionScript; sin embargo, si los tiene, ActionScript le resultar familiar. En este manual no se pretende ensear programacin en general. Existen muchos recursos disponibles que proporcionan informacin sobre los conceptos generales de programacin y sobre el lenguaje JavaScript. El documento ECMA-262 de la Asociacin europea de fabricantes de PC (ECMA, European Computers Manufacturers Association) se deriva de JavaScript y sirve de estndar internacional para el lenguaje JavaScript. ActionScript se basa en la especificacin ECMA-262. Netscape DevEdge Online tiene un sitio Web central para programadores de JavaScript (http://developer.netscape.com/tech/javascript/index.html) que contiene documentacin y artculos que son tiles para comprender ActionScript. El recurso ms til es el manual Core JavaScript Guide. A continuacin se detallan algunas de las diferencias entre ActionScript y JavaScript: ActionScript no admite objetos especficos de navegador como Documento, Ventana y Ancla. ActionScript no admite completamente todos los objetos incorporados de JavaScript. ActionScript no admite algunas construcciones sintcticas de JavaScript, como las etiquetas de sentencia. En ActionScript, la accin eval() slo puede realizar referencias de variables.
  27. 27. 28 Captulo 2: Conceptos bsicos de ActionScript Compatibilidad de ActionScript con Unicode Macromedia Flash MX 2004 y Macromedia Flash MX Professional 2004 admiten la codificacin de texto Unicode para ActionScript. Ello significa que se puede incluir texto en diferentes idiomas en un archivo de ActionScript. Por ejemplo, puede incluir texto en ingls, japons y francs en un mismo archivo. Puede definir en las preferencias de ActionScript el tipo de codificacin que se debe utilizar al importar o exportar archivos de ActionScript. Puede seleccionar la codificacin UTF-8 o la codificacin predeterminada. UTF-8 es un formato Unicode de 8 bits, mientras que la codificacin predeterminada es el formato de codificacin que admite el idioma del sistema que est utilizando, que tambin se conoce como pgina de cdigos tradicional. Normalmente, si se importan o exportan archivos de ActionScript en formato UTF-8, se utiliza la preferencia UTF-8. Si se importan o exportan archivos con la pgina de cdigos tradicional que utiliza el sistema, se utiliza la preferencia Codificacin predeterminada. Si el texto de los scripts no tiene el aspecto esperado al abrir o al importar un archivo, cambie la preferencia de codificacin de importacin. Si recibe un mensaje de advertencia al exportar archivos de ActionScript, cambie la preferencia de codificacin de exportacin o desactive este mensaje en las preferencias de ActionScript. Para seleccionar las opciones de codificacin de texto para importar o exportar archivos de ActionScript: 1 En el cuadro de dilogo Preferencias (Edicin > Preferencias), haga clic en la ficha ActionScript. 2 En Opciones de edicin, realice una o las dos acciones siguientes: En Abrir/importar, seleccione UTF-8 para abrir o importar con la codificacin Unicode, o seleccione Codificacin predeterminada para abrir o importar con la codificacin del idioma que utilice el sistema. En Guardar/exportar, seleccione UTF-8 para guardar o exportar con la codificacin Unicode, o seleccione Codificacin predeterminada para guardar o exportar con la codificacin del idioma que utilice el sistema. Para activar o desactivar el mensaje de advertencia de la codificacin de exportacin: 1 En el cuadro de dilogo Preferencias (Edicin > Preferencias), haga clic en la ficha Advertencias. 2 Seleccione o anule la seleccin de Avisar acerca de conflictos de codificacin al exportar archivos .as. Atencin: el comando Probar pelcula (vase Depuracin de los scripts en la pgina 71) fallar si alguna parte de la ruta del archivo SWF presenta caracteres no representables mediante el esquema de codificacin MBCS. Por ejemplo, las rutas en japons no funcionan en un sistema ingls. Esta limitacin se aplica a todas las reas de la aplicacin que utilizan el reproductor externo. Terminologa Como con cualquier otro lenguaje de creacin de scripts, ActionScript utiliza su propia terminologa. A continuacin, se explican brevemente los trminos de ActionScript importantes. Acciones: sentencias que indican a un archivo SWF que debe llevar a cabo alguna accin durante su reproduccin. Por ejemplo, gotoAndStop() desplaza la cabeza lectora a un fotograma o etiqueta determinados. En este manual, los trminos accin y sentencia tienen el mismo significado.
  28. 28. Terminologa 29 Booleano: valor verdadero (true) o falso (false). Clase: tipo de datos que puede emplearse para definir un nuevo tipo de objeto. Para definir una clase, se utiliza la palabra clave class en un archivo de script externo (no en un script que se est escribiendo en el panel Acciones). Constante: elemento cuyo valor no cambia. Por ejemplo, la constante Key.TAB siempre tiene el mismo significado: indica la tecla Tabulador de un teclado. Las constantes son tiles para comparar valores. Constructor: funcin que se utiliza para definir las propiedades y mtodos de una clase. Por definicin, los constructores son funciones incluidas en definiciones de clases que tienen el mismo nombre que la clase. Por ejemplo, el cdigo siguiente define una clase Circle e implementa una funcin constructora: // archivo Circle.as class Circle { private var radius:Number private var circumference:Number // constructor function Circle(radius:Number) { circumference = 2 * Math.PI * radius; } } El trmino constructor tambin se emplea para crear un objeto (crear instancias del mismo) basado en una clase determinada. Las sentencias siguientes son constructores de la clase Array incorporada y de la clase Circle personalizada: my_array:Array = new Array(); my_circle:Circle = new Circle(); Tipo de datos: describe el tipo de informacin que puede contener una variable o un elemento de ActionScript. Los tipos de datos de ActionScript son: cadena, nmero, valor booleano, objeto, clip de pelcula, funcin, nulo y no definido. Para ms informacin, consulte Tipos de datos en la pgina 36. Eventos: acciones que tienen lugar durante la reproduccin de un archivo SWF. Por ejemplo, cuando se carga un clip de pelcula se generan diferentes eventos: la cabeza lectora accede a un fotograma, el usuario hace clic en un botn o clip de pelcula o el usuario introduce informacin mediante el teclado. Controladores de eventos: acciones especiales que gestionan eventos como mouseDown o load. Se distinguen dos tipos de controladores de eventos de ActionScript: mtodos de controlador de eventos y detectores de eventos. Tambin existen dos controladores de eventos, on() y onClipEvent(), que pueden asignarse directamente a botones y clips de pelcula. En la caja de herramientas Acciones, cada objeto de ActionScript que tiene mtodos de controlador de eventos o detectores de eventos cuenta con una subcategora denominada Eventos o Detectores. Algunos comandos pueden utilizarse como controladores de eventos y como detectores de eventos y se incluyen en ambas subcategoras. Expresin: cualquier combinacin vlida de smbolos de ActionScript que representan un valor. Una expresin est formada por operadores y operandos. Por ejemplo, en la expresin x + 2, x y 2 son operandos y + es un operador. Funcin: bloque de cdigo reutilizable que acepta parmetros y puede devolver un valor. Para ms informacin, consulte Creacin de funciones en la pgina 54.
  29. 29. 30 Captulo 2: Conceptos bsicos de ActionScript Identificador: nombre que se utiliza para identificar una variable, una propiedad, un objeto, una funcin o un mtodo. El primer carcter debe ser una letra, un carcter de subrayado (_) o un smbolo de dlar ($). Los caracteres siguientes deben ser una letra, un nmero, un carcter de subrayado (_) o un smbolo de dlar ($). Por ejemplo, firstName es el nombre de una variable. Instancia: objeto que pertenece a una determinada clase. Cada instancia de una clase contiene todas las propiedades y mtodos de dicha clase. Por ejemplo, todos los clips de pelcula son instancias de la clase MovieClip, de modo que puede utilizar cualquiera de los mtodos o propiedades de la clase MovieClip con cualquier instancia de clip de pelcula. Nombre de instancia: nombre exclusivo que se puede utilizar en instancias de clips de pelcula y de botones a travs de scripts. Utilice el inspector de propiedades para asignar nombres de instancia a las instancias del escenario. Por ejemplo, un smbolo maestro de la biblioteca podra denominarse counter y las dos instancias de dicho smbolo en el archivo SWF podran denominarse scorePlayer1_mc y scorePlayer2_mc. En el siguiente cdigo se utilizan nombres de instancia para establecer una variable denominada score en cada instancia del clip de pelcula: _root.scorePlayer1_mc.score += 1; _root.scorePlayer2_mc.score -= 1; Se pueden emplear sufijos especiales al denominar instancias para que aparezcan sugerencias para el cdigo (vase Utilizacin de las sugerencias para el cdigo en la pgina 66) a medida que se escribe el cdigo. Para ms informacin, consulte Utilizacin de sufijos para activar las sugerencias para el cdigo en la pgina 64. Palabra clave: palabra reservada que tiene un significado especial. Por ejemplo, var es una palabra clave que se utiliza para declarar variables locales. Una palabra clave no puede utilizarse como identificador. Por ejemplo, var no es un nombre de variable vlido. Para obtener una lista de palabras clave, consulte Palabras clave en la pgina 36. Mtodo: funcin asociada a una clase. Por ejemplo, getBytesLoaded() es un mtodo incorporado asociado a la clase MovieClip. Tambin puede crear funciones que acten como mtodos, ya sea para objetos basados en clases incorporadas o para objetos basados en clases que haya creado. Por ejemplo, en el cdigo siguiente, clear() pasa a ser un mtodo de un objeto controller definido anteriormente: function reset(){ this.x_pos = 0; this.x_pos = 0; } controller.clear = reset; controller.clear(); Objeto: conjunto de propiedades y mtodos; cada objeto tiene su propio nombre y es una instancia de una clase determinada. Los objetos incorporados estn predefinidos en el lenguaje ActionScript. Por ejemplo, el objeto incorporado Date ofrece informacin procedente del reloj del sistema. Operador: trmino que calcula un nuevo valor a partir de uno o ms valores. Por ejemplo, el operador de suma (+) suma dos o ms valores para generar un nuevo valor. Los valores manipulados por los operadores se denominan operandos.
  30. 30. Sintaxis 31 Parmetro (denominado tambin argumento): marcador de posicin que permite pasar valores a las funciones. La siguiente funcin welcome(), por ejemplo, utiliza dos valores que recibe de los parmetros firstName y hobby: function welcome(firstName, hobby) { welcomeText = "Hola, " + firstName + "Se nota que te gusta " + hobby; } Paquetes: son directorios que contienen uno o ms archivos de clase y que residen en un directorio classpath determinado (vase Introduccin a la ruta de clases en la pgina 175). Propiedad: atributo que define un objeto. Por ejemplo, _visible es una propiedad de los clips de pelcula que define si el clip est visible u oculto. Rutas de destino: direcciones jerrquicas de nombres de instancias de clips de pelcula, variables y objetos de un archivo SWF. El nombre de una instancia de clip de pelcula se asigna en el inspector de propiedades del clip de pelcula (la lnea de tiempo principal siempre tiene el nombre _root). Se puede utilizar una ruta de destino para dirigir una accin a un clip de pelcula u obtener o definir el valor de una variable. Por ejemplo, la sentencia siguiente es la ruta de destino a la variable volume dentro del clip de pelcula stereoControl: _root.stereoControl.volume Para obtener ms informacin sobre rutas de destino, consulte Rutas de destino absolutas y relativas en el apartado Utilizacin de Flash de la Ayuda. Variable: identificador que almacena valores de cualquier tipo de datos. Las variables pueden crearse, modificarse y actualizarse. Los valores almacenados en una variable pueden recuperarse para ser utilizados en scripts. En el siguiente ejemplo, los identificadores situados a la izquierda de los signos igual son variables: var x = 5; var name = "Lolo"; var c_color = new Color(mcinstanceName); Para ms informacin sobre el uso de variables, consulte Variables en la pgina 43. Sintaxis Como en todos los lenguajes, ActionScript tiene reglas sintcticas que deben cumplirse para escribir scripts que se puedan compilar y ejecutar correctamente. En esta seccin se describen los elementos que conforman la sintaxis de ActionScript. Distincin entre maysculas y minsculas En un lenguaje de programacin que distingue entre maysculas y minsculas, los nombres de variables que slo se diferencian en las maysculas o minsculas (book y Book) se consideran diferentes. Por lo tanto, es aconsejable seguir un criterio coherente en el uso de maysculas y minsculas, como el utilizado en este manual, para facilitar la identificacin de nombres de funciones y variables en el cdigo ActionScript.
  31. 31. 32 Captulo 2: Conceptos bsicos de ActionScript Al publicar archivos en Flash Player 7 o una versin posterior, Flash aplica la distincin entre maysculas y minsculas tanto si utiliza ActionScript 1 como ActionScript 2.0. Esto significa que en las palabras clave, nombres de clase, variables, nombres de mtodo, etc. se distingue entre maysculas y minsculas. Por ejemplo: // En archivos de Flash Player 7 // y ActionScript 1 o ActionScript 2.0 // // Define las propiedades de dos objetos diferentes cat.hilite = true; CAT.hilite = true; // Crea tres variables diferentes var myVar=10; var myvar=10; var mYvAr=10; // No genera un error var array = new Array(); var date = new Date(); Este cambio tambin afecta a las variables externas cargadas con LoadVars.load(). Adems, la distincin entre maysculas y minsculas se aplica a los scripts externos, como los scripts o los archivos de clase de ActionScript 2.0 que se importan con el comando #include. Si publica archivos en Flash Player 7 y previamente ha creado archivos externos que ha aadido a los scripts mediante la sentencia #include, revise cada archivo y verifique que ha utilizado un criterio de distincin entre maysculas y minsculas coherente en todo el archivo. Una forma de hacerlo es abrir el archivo en la ventana Script (slo en Flash Professional) o en un archivo FLA nuevo, definir la configuracin de publicacin para Flash Player 7 y copiar el contenido del archivo en el panel Acciones. A continuacin, utilice el botn Revisar sintaxis (vase Comprobacin de la sintaxis y la puntuacin en la pgina 69) o publique el archivo; los errores causados por conflictos de denominacin aparecern en el panel Salida. Si activa la funcin Color de sintaxis, los elementos del lenguaje que haya escrito con el formato correcto de maysculas y minsculas aparecen en azul de forma predeterminada. Para ms informacin, consulte Palabras clave en la pgina 36 y Resaltado de la sintaxis en la pgina 63. Sintaxis con punto En ActionScript, se utiliza un punto (.) para indicar las propiedades o mtodos relacionados con un objeto o un clip de pelcula. Tambin se utiliza para identificar la ruta de destino a un clip de pelcula, variable, funcin u objeto. Una expresin que utiliza una sintaxis con punto empieza con el nombre del objeto o clip de pelcula seguido de un punto y termina con el elemento que desee especificar. Por ejemplo, la propiedad de clip de pelcula _x indica la posicin del clip de pelcula en el eje x en el escenario. La expresin ballMC._x se refiere a la propiedad _x de la instancia del clip de pelcula ballMC. Otro ejemplo es submit, una variable definida en el clip de pelcula form que se encuentra anidado dentro del clip de pelcula shoppingCart. La expresin shoppingCart.form.submit = true define la variable submit de la instancia form como true.
  32. 32. Sintaxis 33 La expresin de un mtodo de un objeto o de un clip de pelcula sigue el mismo esquema. Por ejemplo, el mtodo play()de la instancia de clip de pelcula ball_mc desplaza la cabeza lectora en la lnea de tiempo de ball_mc, como se indica en la sentencia siguiente: ball_mc.play(); La sintaxis con punto tambin utiliza dos alias especiales: _root y _parent. El alias _root se refiere a la lnea de tiempo principal. Puede utilizar el alias _root para crear una ruta de destino absoluta. Por ejemplo, la siguiente sentencia llama a la funcin buildGameBoard en el clip de pelcula functions en la lnea de tiempo principal: _root.functions.buildGameBoard(); Puede utilizar el alias _parent para referirse a un clip de pelcula en el que est anidado el objeto actual. Tambin puede utilizar _parent para crear una ruta de destino relativa. Por ejemplo, si el clip de pelcula dog_mc est anidado en el clip de pelcula animal_mc, la sentencia siguiente de la instancia dog_mc indica a animal_mc que pare: _parent.stop(); Sintaxis con barras La sintaxis con barras se utiliz en Flash 3 y 4 para indicar la ruta de destino de un clip de pelcula o de una variable. Flash Player 7 todava admite esta sintaxis, aunque no es aconsejable utilizarla. ActionScript 2.0 no la admite. No obstante, si est creando contenido especficamente para Flash Player 4, debe utilizar la sintaxis con barras. Para ms informacin, consulte Utilizacin de sintaxis con barras en la pgina 799. Llaves Los controladores de eventos, las definiciones de clase y las funciones de ActionScript se agrupan en bloques mediante llaves ({}). Puede colocar la llave de apertura en la misma lnea de la declaracin o en la lnea siguiente, tal como se muestra en los ejemplos que aparecen a continuacin. Para facilitar la lectura del cdigo, es recomendable elegir un formato y utilizarlo de forma coherente. // Controlador de eventos on(release) { myDate = new Date(); currentMonth = myDate.getMonth(); } on(release) { myDate = new Date(); currentMonth = myDate.getMonth(); } // Clase class Circle(radius) { } class Square(side) { } // Funcin circleArea = function(radius) {
  33. 33. 34 Captulo 2: Conceptos bsicos de ActionScript return radius * radius * MATH.PI; } squareArea = function(side) { return side * side; } Puede comprobar si las llaves de apertura tienen sus correspondientes llaves de cierre en los scripts; vase Comprobacin de la sintaxis y la puntuacin en la pgina 69. Punto y coma Una sentencia ActionScript se termina con un punto y coma (;), como se indica en los ejemplos siguientes: var column = passedDate.getDay(); var row = 0; Aun cuando omita el punto y coma final, Flash compilar el script correctamente. No obstante, al crear scripts se recomienda utilizar el punto y coma final. Parntesis Al definir una funcin, los parmetros deben incluirse entre parntesis: function myFunction (name, age, reader){ // el cdigo se escribe aqu } Al llamar una funcin, incluya los parmetros que desee pasar a la misma entre parntesis, como se muestra a continuacin: myFunction ("Steve", 10, true); Tambin puede utilizar parntesis para modificar el orden de precedencia de ActionScript o para hacer ms legibles las sentencias de ActionScript. (Vase Precedencia y asociatividad de operadores en la pgina 48.) Tambin puede utilizar los parntesis para calcular el resultado de una expresin a la izquierda de un punto en la sintaxis con punto. Por ejemplo, en la sentencia siguiente, los parntesis hacen que new Color(this) se evale y se cree un nuevo objeto Color: onClipEvent(enterFrame) { (new Color(this)).setRGB(0xffffff); } Si no utiliza parntesis, debe agregar una sentencia para evaluar la expresin: onClipEvent(enterFrame) { myColor = new Color(this); myColor.setRGB(0xffffff); } Puede comprobar si los parntesis de apertura tienen sus correspondientes parntesis de cierre en los scripts; vase Comprobacin de la sintaxis y la puntuacin en la pgina 69.
  34. 34. Sintaxis 35 Comentarios Es muy aconsejable aadir notas a los scripts utilizando comentarios. Los comentarios son de gran utilidad para realizar un seguimiento de las acciones que se han deseado llevar a cabo, para proporcionar muestras y, en el caso de que se trabaje en un entorno de trabajo en equipo, para pasar informacin a otros desarrolladores. Incluso un script sencillo es ms fcil de entender si se anotan comentarios durante el proceso de creacin. Para indicar que una lnea o parte de una lnea es un comentario, inciela con dos barras inclinadas (//): on(release) { // crear un objeto Date nuevo myDate = new Date(); currentMonth = myDate.getMonth(); // convertir nmero de mes en nombre de mes monthName = calcMonth(currentMonth); year = myDate.getFullYear(); currentDate = myDate.getDate(); } Si la funcin Color de sintaxis est activada (vase Resaltado de la sintaxis en la pgina 63), los comentarios aparecen en gris de forma predeterminada. Los comentarios pueden tener cualquier longitud sin que ello afecte al tamao del archivo exportado y no es necesario que sigan las reglas de las palabras clave y de la sintaxis de ActionScript. Si desea que excluya como si fuera un comentario una parte completa del script, colquela en un bloque de comentario en lugar de aadir // al principio de cada lnea. Esta tcnica es ms sencilla y resulta til cuando se desea probar slo partes del script convirtiendo en comentario gran parte del mismo. Para crear un bloque de comentario, coloque /* al principio de las lneas de comentario y */ al final. Por ejemplo, cuando se ejecute el siguiente script, no se ejecutar el cdigo incluido en el bloque de comentario. // El cdigo siguiente se ejecuta var x:Number = 15; var y:Number = 20; // El cdigo siguiente no se ejecuta /* on(release) { // crear un objeto Date nuevo myDate = new Date(); currentMonth = myDate.getMonth(); // convertir nmero de mes en nombre de mes monthName = calcMonth(currentMonth); year = myDate.getFullYear(); currentDate = myDate.getDate(); } */ // El cdigo siguiente se ejecuta var name:String = "Me llamo"; var age:Number = 20;
  35. 35. 36 Captulo 2: Conceptos bsicos de ActionScript Palabras clave ActionScript reserva palabras para usarlas especficamente en su lenguaje de programacin, de modo que no se pueden utilizar como identificadores; por ejemplo, nombres de variables, de funciones y de etiquetas. En la siguiente tabla se muestra una lista de las palabras clave de ActionScript: Constantes Una constante es una propiedad cuyo valor nunca cambia. Por ejemplo, las constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE y TAB son propiedades del objeto Key y se refieren a las teclas del teclado. Para comprobar si el usuario est presionando la tecla Intro, utilice la siguiente sentencia: if(Key.getCode() == Key.ENTER) { alert = "Est listo para jugar?"; controlMC.gotoAndStop(5); } Tipos de datos Un tipo de datos describe la clase de informacin que puede contener una variable o un elemento de ActionScript. En Flash se distinguen dos tipos de datos: primitivos y de referencia. Los tipos de datos primitivos (String, Number y Boolean) tienen un valor constante y, por consiguiente, pueden contener el valor real del elemento que representan. Los tipos de datos de referencia (MovieClip y Object) tienen valores que pueden cambiar y, por consiguiente, contienen referencias al valor real del elemento. Las variables que contienen datos de tipo primitivo se comportan de modo diferente en ciertas situaciones que las que contienen datos de tipo referencia. (Vase Utilizacin de variables en un programa en la pgina 46.) Hay dos tipos de datos especiales: null y undefined. En Flash, los objetos incorporados que no sean un tipo de datos primitivo o un tipo de datos de clip de pelcula, como Array o Math, son del tipo de datos Object. Cada tipo de datos tiene sus propias reglas y est definido en los temas siguientes: String en la pgina 37 Number en la pgina 38 Boolean en la pgina 38 Object en la pgina 38 break case class continue default delete dynamic else extends for function get if implements import in instanceof interface intrinsic new private public return set static switch this typeof var void while with
  36. 36. Tipos de datos 37 MovieClip en la pgina 39 Null en la pgina 39 Undefined en la pgina 39 Cuando se depuran scripts, a veces es necesario determinar el tipo de datos de una expresin o variable para entender por qu se comporta de cierta manera. Esto se puede hacer con el operador typeof (vase Determinacin del tipo de datos de un elemento en la pgina 39). Puede convertir un tipo de datos en otro mediante una de las funciones de conversin siguientes: Array(), Boolean(), Number(), Object(), String(). String Una cadena es una secuencia de caracteres tales como letras, nmeros y signos de puntuacin. Las cadenas se introducen en una sentencia de ActionScript entre comillas simples o dobles. Las cadenas se tratan como caracteres, no como variables. Por ejemplo, en la siguiente sentencia, "L7" es una cadena: favoriteBand = "L7"; Puede utilizar el operador de suma (+) para concatenar o unir dos cadenas. ActionScript trata los espacios del comienzo o del final de una cadena como parte literal de la cadena. La siguiente expresin incluye un espacio despus de la coma: greeting = "Bienvenido," + firstName; Para incluir un signo de interrogacin en una cadena, ponga delante el carcter de barra inversa (). A esto se le llama utilizar una secuencia de escape en un carcter. Existen otros caracteres que no pueden representarse en ActionScript, a menos que se utilice una secuencia de escape especial. La siguiente tabla muestra todos los caracteres de escape de ActionScript: Secuencia de escape Carcter b Carcter de retroceso (ASCII 8) f Carcter de salto de pgina (ASCII 12) n Carcter de avance de lnea (ASCII 10) r Carcter de retorno de carro (ASCII 13) t Carcter de tabulacin (ASCII 9) " Comillas dobles ' Comillas simplesBarra inversa 000 - 377 Byte especificado en octal x00 - xFF Byte especificado en hexadecimal u0000 - uFFFF Carcter Unicode de 16 bits especificado en hexadecimal
  37. 37. 38 Captulo 2: Conceptos bsicos de ActionScript Number El tipo de datos numrico es un nmero de coma flotante de doble precisin. Puede manipular los nmeros mediante los operadores aritmticos de suma (+), resta (-), multiplicacin (*), divisin (/), mdulo (%), incremento (++) y decremento (--). Tambin puede utilizar mtodos de las clases incorporadas Math y Number para manipular los nmeros. En el ejemplo siguiente se utiliza el mtodo sqrt() (raz cuadrada) para devolver la raz cuadrada del nmero 100: Math.sqrt(100); Para ms informacin, consulte Operadores numricos en la pgina 48. Boolean Un valor booleano puede ser true o false. ActionScript tambin convierte los valores true y false en 1 y 0 cuando sea adecuado. Los valores booleanos se usan con mayor frecuencia con los operadores lgicos en sentencias de ActionScript que realizan comparaciones para controlar el flujo de un script. Por ejemplo, en el siguiente script, el archivo SWF se reproduce si la variable password es true: onClipEvent(enterFrame) { if (userName == true && password == true){ play(); } } Vase Utilizacin de funciones incorporadas en la pgina 54 y Operadores lgicos en la pgina 50. Object Un objeto es un conjunto de propiedades. Cada propiedad tiene un nombre y un valor. El valor de la propiedad puede ser cualquier tipo de datos de Flash, incluso el tipo de datos de objeto. Esto permite organizar unos objetos dentro de otros, o anidarlos. Para especificar objetos y sus propiedades, debe utilizar el operador punto (.). Por ejemplo, en el siguiente cdigo, hoursWorked es una propiedad de weeklyStats, que a su vez es una propiedad de employee: employee.weeklyStats.hoursWorked Puede utilizar los objetos incorporados de ActionScript para acceder y manipular tipos de informacin especficos. Por ejemplo, el objeto Math tiene mtodos que realizan operaciones matemticas con los nmeros que le pasan. En este ejemplo se utiliza el mtodo sqrt(): squareRoot = Math.sqrt(100); El objeto MovieClip de ActionScript tiene mtodos que permiten controlar las instancias del smbolo de clip de pelcula en el escenario. En este ejemplo se utilizan los mtodos play() y nextFrame(): mcInstanceName.play(); mc2InstanceName.nextFrame(); Tambin puede crear objetos personalizados para organizar la informacin en la aplicacin Flash. Para aadir interactividad a una aplicacin con ActionScript, necesita