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
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 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. 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 Introduccin: Primeros pasos con ActionScript
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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