Guía que te ayudará con la sintaxis, librerías, funciones, métodos, eventos y demás usando ActionScript 3.0.
838
PROGRAMACIÓN CON ACTIONSCRIPT ™ 3.0
Transcript
1. PROGRAMACIN CON ACTIONSCRIPT 3.0
2. 2007 Adobe Systems Incorporated. Todos los derechos
reservados. Programacin con ActionScript 3.0 Si esta gua se
distribuye con software que incluye un contrato de usuario final,
la gua, as como el software descrito en ella, se proporciona con
una licencia y slo puede usarse o copiarse en conformidad con los
trminos de dicha licencia. Con la excepcin de lo permitido por la
licencia, ninguna parte de esta gua puede ser reproducida,
almacenada en un sistema de recuperacin de datos ni transmitida de
ninguna forma ni por ningn medio, ya sea electrnico, mecnico, de
grabacin o de otro tipo, sin el consentimiento previo por escrito
de Adobe Systems Incorporated. Tenga en cuenta que el contenido de
esta gua est protegido por las leyes de derechos de autor aunque no
se distribuya con software que incluya un contrato de licencia de
usuario final. El contenido de esta gua se proporciona
exclusivamente con fines informativos, est sujeto a cambios sin
previo aviso y no debe interpretarse como un compromiso de Adobe
Systems Incorporated. Adobe Systems Incorporated no asume ninguna
responsabilidad por los errores o imprecisiones que puedan existir
en el contenido informativo de esta gua. Recuerde que las
ilustraciones o imgenes existentes que desee incluir en su proyecto
pueden estar protegidas por las leyes de derechos de autor. La
incorporacin no autorizada de este material en sus trabajos puede
infringir los derechos del propietario de los derechos de autor.
Asegrese de obtener los permisos necesarios del propietario de los
derechos de autor. Cualquier referencia a nombres de compaas en
plantillas de ejemplo slo se hace con propsitos de demostracin y no
est relacionada con ninguna organizacin real. Adobe, el logotipo de
Adobe, Flex, Flex Builder y Flash Player son marcas registradas o
marcas comerciales de Adobe Systems Incorporated en Estados Unidos
y/o en otros pases. ActiveX y Windows son marcas registradas o
marcas comerciales de Microsoft Corporation en Estados Unidos y en
otros pases. Macintosh es una marca comercial de Apple Inc.,
registrada en Estados Unidos y/o en otros pases. Todas las dems
marcas comerciales son propiedad de sus propietarios respectivos.
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. Adobe Systems
Incorporated, 345 Park Avenue, San Jose, California 95110, EE.UU.
Aviso para usuarios finales del gobierno de EE.UU. El software y la
documentacin son Artculos comerciales, segn la definicin de este
trmino incluida en 48 C.F.R. 2.101, consistentes en Software
informtico comercial y Documentacin de software informtico
comercial, segn el uso aplicable de dichos trminos en 48 C.F.R.
12.212 48 C.F.R. 227.7202. En conformidad con 48 C.F.R. 12.212 48
C.F.R. 227.7202-1 a 227.7202-4 (lo que corresponda), se otorga a
usuarios finales del gobierno de EE.UU. una licencia del Software
informtico comercial y la Documentacin de software informtico
comercial (a) nicamente como elementos comerciales y (b)
exclusivamente con los derechos concedidos a todos los dems
usuarios finales para su utilizacin en conformidad con los trminos
y las condiciones aqu descritos. Derechos no publicados reservados
bajo las leyes de derechos de autor de Estados Unidos. Adobe
Systems Incorporated, 345 Park Avenue, San Jose, California
95110-2704, EE.UU. Para los usuarios finales del gobierno de
EE.UU., Adobe se compromete a cumplir todas las leyes de igualdad
de oportunidades aplicables incluidas, si corresponde, las
disposiciones del decreto-ley 11246, con las enmiendas, Seccin 402
de la Ley de ayuda para la readaptacin de los veteranos de Vietnam
de 1974 (38 USC 4212) y Seccin 503 de la Ley de Rehabilitacin de
1973, con las enmiendas, y los reglamentos de los apartados 60-1 a
60-60, 60-250 y 60-741 de 41 CFR. La clusula de discriminacin
positiva y los reglamentos incluidos en la declaracin anterior
deben incorporarse mediante referencia.
13. Acerca de este manual Este manual proporciona una base para
desarrollar aplicaciones con ActionScript 3.0. Para entender mejor
las ideas y tcnicas descritas en este manual es necesario tener
unas nociones bsicas sobre programacin, como saber qu son los tipos
de datos, las variables, los bucles y las funciones. Tambin hay que
conocer conceptos bsicos sobre la programacin orientada a objetos,
como los conceptos de clase y herencia. Un conocimiento previo de
ActionScript 1.0 o ActionScript 2.0 es til pero no necesario.
Contenido Utilizacin de este manual . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 Acceso a la documentacin de ActionScript . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 15 Recursos de
aprendizaje de ActionScript. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .17 13
14. Utilizacin de este manual Los captulos de este manual estn
organizados en los siguientes grupos lgicos para ayudarle a
encontrar reas relacionadas de la documentacin de ActionScript:
Captulo Descripcin En los captulos 1 a 4 se ofrece informacin
general sobre la programacin en ActionScript Se tratan conceptos
bsicos sobre ActionScript 3.0, como la sintaxis del lenguaje, las
sentencias y los operadores, la especificacin del borrador del
lenguaje ECMAScript edicin 4, la programacin orientada a objetos en
ActionScript y el nuevo enfoque para administrar objetos de
visualizacin en la lista de visualizacin de Adobe Flash Player 9.
En los captulos 5 a 10 se describen las clases y los tipos de datos
bsicos de ActionScript 3.0 Se describen los tipos de datos de nivel
superior de ActionScript 3.0 que tambin forman parte de la
especificacin del borrador de ECMAScript. En los captulos 11 a 26
se describen las API de Flash Player Se explican caractersticas
importantes implementadas en paquetes y clases especficos de Adobe
Flash Player 9, como el control de eventos, las conexiones de red y
las comunicaciones, la entrada y salida de archivos, la interfaz
externa, el modelo de seguridad de aplicaciones, etc. Este manual
tambin contiene numerosos archivos de ejemplo que ilustran
conceptos de programacin de aplicaciones para clases importantes o
utilizadas frecuentemente. Los archivos de ejemplo se empaquetan de
manera que resulten fciles de cargar y utilizar con Adobe Flash CS3
Professional, y pueden incluir archivos envolventes. Sin embargo,
el ncleo del cdigo de ejemplo es puro cdigo ActionScript 3.0 que se
puede utilizar en el entorno de desarrollo que se prefiera. Se
puede escribir y compilar cdigo ActionScript 3.0 de varias maneras:
Mediante el entorno de desarrollo Adobe Flex Builder 2 Utilizando
cualquier editor de texto y un compilador de lnea de comandos, como
el proporcionado con Flex Builder 2 Mediante la herramienta de
edicin Adobe Flash CS3 Professional Para ms informacin sobre los
entornos de desarrollo de ActionScript, consulte el Captulo 1,
Introduccin a ActionScript 3.0. 14 Acerca de este manual
15. Para comprender los ejemplos de cdigo de este manual no es
necesario tener experiencia previa en el uso de entornos de
desarrollo integrados para ActionScript, como Flex Builder o la
herramienta de edicin Flash. No obstante, es conveniente consultar
la documentacin de estas herramientas para aprender a utilizarlas y
a escribir y compilar cdigo ActionScript 3.0. Para ms informacin,
consulte Acceso a la documentacin de ActionScript en la pgina 15.
Acceso a la documentacin de ActionScript Este manual se centra en
describir ActionScript 3.0, un completo y eficaz lenguaje de
programacin orientada a objetos. No incluye una descripcin
detallada del proceso de desarrollo de aplicaciones ni del flujo de
trabajo en una herramienta o arquitectura de servidor especfica.
Por ello, adems de leer Programacin con ActionScript 3.0, es
recomendable consultar otras fuentes de documentacin al disear,
desarrollar, probar e implementar aplicaciones de ActionScript 3.0.
Documentacin de ActionScript 3.0 En este manual se explican los
conceptos relacionados con la programacin en ActionScript 3.0, se
muestran los detalles de implementacin y se proporcionan ejemplos
que ilustran las caractersticas importantes del lenguaje. No
obstante, este manual no es una referencia del lenguaje exhaustiva.
Para una referencia completa, consulte la Referencia del lenguaje y
componentes ActionScript 3.0, en la que se describen todas las
clases, los mtodos, las propiedades y los eventos del lenguaje. La
Referencia del lenguaje y componentes ActionScript 3.0 proporciona
informacin de referencia detallada sobre el ncleo del lenguaje, los
componentes Flash (de los paquetes fl) y las API de Flash Player
(de los paquetes flash). Documentacin de Flash Si utiliza el
entorno de desarrollo de Flash, es posible que desee consultar
estos manuales: Manual Descripcin Utilizacin de Flash Describe la
manera de desarrollar aplicaciones Web dinmicas en el entorno de
edicin de Flash Programacin con ActionScript 3.0 Describe el uso
especfico del lenguaje ActionScript 3.0 y la API principal de Flash
Player Acceso a la documentacin de ActionScript 15
16. Manual Descripcin Referencia del lenguaje y componentes
ActionScript 3.0 Proporciona informacin sobre la sintaxis y el uso,
as como ejemplos de cdigo, para los componentes de Flash y la API
de ActionScript 3.0 Utilizacin de componentes ActionScript 3.0
Explica los detalles de la utilizacin de componentes para
desarrollar aplicaciones Flash Aprendizaje de ActionScript 2.0 en
Adobe Flash Proporciona informacin general sobre la sintaxis de
ActionScript 2.0 y sobre cmo utilizar ActionScript 2.0 al trabajar
con distintos tipos de objetos. Referencia del lenguaje
ActionScript 2.0 Proporciona informacin sobre la sintaxis y el uso,
as como ejemplos de cdigo, para los componentes de Flash y la API
de ActionScript 2.0 Utilizacin de componentes ActionScript 2.0
Explica de forma detallada cmo utilizar componentes ActionScript
2.0 para desarrollar aplicaciones Flash Referencia del lenguaje de
componentes ActionScript 2.0 Describe cada componente disponible en
la versin 2 de la arquitectura de componentes de Adobe, junto con
su API Ampliacin de Flash Describe los objetos, mtodos y
propiedades disponibles en la API de JavaScript. Introduccin a
Flash Lite 2.x Explica cmo utilizar Adobe Flash Lite 2.x para
desarrollar aplicaciones y proporciona informacin sobre la sintaxis
y el uso, as como ejemplos de cdigo, de las funciones de
ActionScript disponibles en Flash Lite 2.x Desarrollo de
aplicaciones de Flash Lite 2.x Explica cmo desarrollar aplicaciones
de Flash Lite 2.x Introduccin a ActionScript en Flash Lite 2.x
Ofrece una introduccin al desarrollo de aplicaciones Flash Lite 2.x
y describe todas las funciones de ActionScript disponibles para los
desarrolladores de Flash Lite 2.x Referencia del lenguaje
ActionScript de Flash Lite 2.x 16 Acerca de este manual Proporciona
informacin sobre la sintaxis y el uso, as como ejemplos de cdigo,
de la API de ActionScript 2.0 disponible en Flash Lite 2.x
17. Manual Descripcin Introduccin a Flash Lite 1.x Proporciona
una introduccin a Flash Lite 1.x y describe la manera de probar
contenido con el emulador de Adobe Device Central CS3 Desarrollo de
aplicaciones de Flash Lite 1.x Describe la manera de desarrollar
aplicaciones para dispositivos mviles con Flash Lite 1.x
Aprendizaje de ActionScript en Flash Lite 1.x Explica cmo utilizar
ActionScript en aplicaciones de Flash Lite 1.x y describe todas las
funciones de ActionScript disponibles en Flash Lite 1.x Referencia
del lenguaje ActionScript de Flash Lite 1.x Describe la sintaxis y
la forma de usar los elementos de ActionScript disponibles en Flash
Lite 1.x Recursos de aprendizaje de ActionScript Adems del
contenido de estos manuales, Adobe proporciona regularmente
artculos actualizados, ideas de diseo y ejemplos en el Centro de
desarrolladores de Adobe y en Adobe Design Center (centro de diseo
de Adobe). Centro de desarrolladores de Adobe El Centro de
desarrolladores de Adobe contiene la informacin ms actualizada
sobre ActionScript, artculos sobre el desarrollo de aplicaciones
reales e informacin sobre nuevos problemas importantes. Visite el
Centro de desarrolladores en www.adobe.com/es/devnet. Adobe Design
Center (centro de diseo de Adobe) Pngase al da en diseo digital y
grficos en movimiento. Examine la obra de importantes artistas,
descubra las nuevas tendencias de diseo y mejore sus conocimientos
con tutoriales, flujos de trabajo clave y tcnicas avanzadas.
Consulte el centro cada quince das para ver tutoriales y artculos
nuevos e inspirarse con las creaciones de las galeras. Visite el
centro de diseo en www.adobe.com/go/designcenter_es. Recursos de
aprendizaje de ActionScript 17
18. 18 Acerca de este manual
19. CAPTULO 1 1 Introduccin a ActionScript 3.0 En este captulo
se ofrece informacin general sobre ActionScript 3.0, la versin ms
reciente e innovadora de ActionScript. Contenido ActionScript. . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 19 Ventajas de
ActionScript 3.0. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 20 Novedades de
ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 20 Compatibilidad con
versiones anteriores . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 25 ActionScript ActionScript es el
lenguaje de programacin para el entorno de tiempo de ejecucin de
Adobe Flash Player. Activa, entre otras muchas cosas, la
interactividad y la gestin de datos en el contenido y las
aplicaciones de Flash. ActionScript se ejecuta mediante la mquina
virtual ActionScript (AVM), que forma parte de Flash Player. El
cdigo ActionScript se suele compilar a un formato de cdigo de bytes
(un tipo de lenguaje que los ordenadores pueden escribir y
comprender) mediante un compilador, como el incorporado en Adobe
Flash CS3 Professional o en Adobe Flex Builder, o el que est
disponible en el SDK de Adobe Flex y en Flex Data Services. El
cdigo de bytes est incorporado en los archivos SWF ejecutados por
Flash Player, el entorno de tiempo de ejecucin. ActionScript 3.0
ofrece un modelo de programacin robusto que resultar familiar a los
desarrolladores con conocimientos bsicos sobre programacin
orientada a objetos. Algunas de las principales funciones de
ActionScript 3.0 son: Una nueva mquina virtual ActionScript,
denominada AVM2, que utiliza un nuevo conjunto de instrucciones de
cdigo de bytes y proporciona importantes mejoras de rendimiento.
19
20. Una base de cdigo de compilador ms moderna, que se ajusta
mejor al estndar ECMAScript (ECMA 262) y que realiza mejores
optimizaciones que las versiones anteriores del compilador. Una
interfaz de programacin de aplicaciones (API) ampliada y mejorada,
con un control de bajo nivel de los objetos y un autntico modelo
orientado a objetos. Un ncleo del lenguaje basado en el prximo
borrador de especificacin del lenguaje ECMAScript (ECMA-262) edicin
4. Una API XML basada en la especificacin de ECMAScript para XML
(E4X) (ECMA-357 edicin 2). E4X es una extensin del lenguaje
ECMAScript que aade XML como un tipo de datos nativo del lenguaje.
Un modelo de eventos basado en la especificacin de eventos DOM
(modelo de objetos de documento) de nivel 3. Ventajas de
ActionScript 3.0 ActionScript 3.0 aumenta las posibilidades de
creacin de scripts de las versiones anteriores de ActionScript. Se
ha diseado para facilitar la creacin de aplicaciones muy complejas
con conjuntos de datos voluminosos y bases de cdigo reutilizables y
orientadas a objetos. Aunque no se requiere para el contenido que
se ejecuta en Adobe Flash Player 9, ActionScript 3.0 permite
introducir unas mejoras de rendimiento que slo estn disponibles con
AVM2, la nueva mquina virtual. El cdigo ActionScript 3.0 puede
ejecutarse con una velocidad diez veces mayor que el cdigo
ActionScript heredado. La versin anterior de la mquina virtual
ActionScript (AVM1) ejecuta cdigo ActionScript 1.0 y ActionScript
2.0. Flash Player 9 admite AVM1 por compatibilidad con contenido
existente y heredado de versiones anteriores. Para ms informacin,
consulte Compatibilidad con versiones anteriores en la pgina 25.
Novedades de ActionScript 3.0 Aunque ActionScript 3.0 contiene
muchas clases y funciones que resultarn familiares a los
programadores de ActionScript, la arquitectura y los conceptos de
ActionScript 3.0 difieren de las versiones anteriores de
ActionScript. ActionScript 3.0 incluye algunas mejoras como, por
ejemplo, nuevas funciones del ncleo del lenguaje y una API de Flash
Player mejorada que proporciona un mayor control de objetos de bajo
nivel. 20 Introduccin a ActionScript 3.0
21. Funciones del ncleo del lenguaje El ncleo del lenguaje est
formado por los bloques bsicos del lenguaje de programacin, como
sentencias, expresiones, condiciones, bucles y tipos. ActionScript
3.0 contiene muchas funciones nuevas que aceleran el proceso de
desarrollo. Excepciones de tiempo de ejecucin ActionScript 3.0
notifica ms situaciones de error que las versiones anteriores de
ActionScript. Las excepciones de tiempo de ejecucin se utilizan en
situaciones de error frecuentes y permiten mejorar la depuracin y
desarrollar aplicaciones para gestionar errores de forma robusta.
Los errores de tiempo de ejecucin pueden proporcionar trazas de
pila con la informacin del archivo de cdigo fuente y el nmero de
lnea. Esto permite identificar rpidamente los errores. Tipos de
tiempo de ejecucin En ActionScript 2.0, las anotaciones de tipos
eran principalmente una ayuda para el desarrollador; en tiempo de
ejecucin, se asignaban los tipos dinmicamente a todos los valores.
En ActionScript 3.0, la informacin de tipos se conserva en tiempo
de ejecucin y se utiliza con diversos fines. Flash Player 9 realiza
la comprobacin de tipos en tiempo de ejecucin, lo que mejora la
seguridad de tipos del sistema. La informacin de tipos tambin se
utiliza para especificar variables en representaciones nativas de
la mquina, lo que mejora el rendimiento y reduce el uso de memoria.
Clases cerradas ActionScript 3.0 introduce el concepto de clases
cerradas. Una clase cerrada posee nicamente el conjunto fijo de
propiedades y mtodos definidos durante la compilacin; no es posible
aadir propiedades y mtodos adicionales. Esto permite realizar una
comprobacin ms estricta en tiempo de compilacin, lo que aporta una
mayor solidez a los programas. Tambin mejora el uso de memoria,
pues no requiere una tabla hash interna para cada instancia de
objeto. Adems, es posible utilizar clases dinmicas mediante la
palabra clave dynamic. Todas las clases de ActionScript 3.0 estn
cerradas de forma predeterminada, pero pueden declararse como
dinmicas con la palabra clave dynamic. Novedades de ActionScript
3.0 21
22. Cierres de mtodos ActionScript 3.0 permite que un cierre de
mtodo recuerde automticamente su instancia de objeto original. Esta
funcin resulta til en la gestin de eventos. En ActionScript 2.0,
los cierres de mtodos no recordaban la instancia de objeto de la
que se haban extrado, lo que provocaba comportamientos inesperados
cuando se llamaba al cierre de mtodo. La clase mx.utils.Delegate
permita solucionar este problema, pero ya no es necesaria.
ECMAScript for XML (E4X) ActionScript 3.0 implementa ECMAScript for
XML (E4X), recientemente estandarizado como ECMA-357. E4X ofrece un
conjunto fluido y natural de construcciones del lenguaje para
manipular XML. Al contrario que las API de anlisis de XML
tradicionales, XML con E4X se comporta como un tipo de datos nativo
del lenguaje. E4X optimiza el desarrollo de aplicaciones que
manipulan XML, pues reduce drsticamente la cantidad de cdigo
necesario. Para ms informacin sobre la implementacin de E4X en
ActionScript 3.0, consulte el Captulo 11, Utilizacin de XML, en la
pgina 357. Para ver la especificacin de E4X publicada por ECMA,
vaya a www.ecma-international.org. Expresiones regulares
ActionScript 3.0 ofrece compatibilidad nativa con expresiones
regulares, que permiten encontrar y manipular cadenas rpidamente.
Implementa la compatibilidad con expresiones regulares tal y como
se definen en la especificacin del lenguaje ECMAScript edicin 3
(ECMA-262). Espacios de nombres Los espacios de nombres son
similares a los especificadores de acceso tradicionales que se
utilizan para controlar la visibilidad de las declaraciones
(public, private, protected). Funcionan como especificadores de
acceso personalizados, con nombres elegidos por el usuario. Los
espacios de nombres incluyen un identificador de recursos universal
(URI) para evitar colisiones y tambin se utilizan para representar
espacios de nombres XML cuando se trabaja con E4X. 22 Introduccin a
ActionScript 3.0
23. Nuevos tipos simples ActionScript 2.0 tiene un solo tipo
numrico, Number, un nmero de coma flotante con precisin doble.
ActionScript 3.0 contiene los tipos int y uint. El tipo int es un
entero de 32 bits con signo que permite al cdigo ActionScript
aprovechar las capacidades matemticas de manipulacin rpida de
enteros de la CPU. Este tipo es til para contadores de bucle y
variables en las que se usan enteros. El tipo uint es un tipo
entero de 32 bits sin signo que resulta til para valores de colores
RGB y recuentos de bytes, entre otras cosas. Funciones de la API de
Flash Player La API de Flash Player en ActionScript 3.0 contiene
muchas de las nuevas clases que permiten controlar objetos a bajo
nivel. La arquitectura del lenguaje es completamente nueva y ms
intuitiva. Hay demasiadas clases nuevas para poder tratarlas con
detalle, de modo que en las siguientes secciones se destacan
algunos cambios importantes. Modelo de eventos DOM3 El modelo de
eventos del modelo de objetos de documento de nivel 3 (DOM3) ofrece
un modo estndar para generar y gestionar mensajes de eventos de
forma que los objetos de las aplicaciones puedan interactuar y
comunicarse, mantener su estado y responder a los cambios. Diseado
a partir de la especificacin de eventos DOM de nivel 3 del World
Wide Web Consortium, este modelo proporciona un mecanismo ms claro
y eficaz que los sistemas de eventos disponibles en versiones
anteriores de ActionScript. Los eventos y los eventos de error se
encuentran en el paquete flash.events. La arquitectura de
componentes de Flash utiliza el mismo modelo de eventos que la API
de Flash Player, de forma que el sistema de eventos est unificado
en toda la plataforma Flash. API de la lista de visualizacin La API
de acceso a la lista de visualizacin de Flash Player (el rbol que
contiene todos los elementos visuales de una aplicacin Flash) se
compone de clases para trabajar con elementos visuales simples en
Flash. La nueva clase Sprite es un bloque bsico ligero, similar a
la clase MovieClip pero ms apropiado como clase base de los
componentes de interfaz de usuario. La nueva clase Shape representa
formas vectoriales sin procesar. Es posible crear instancias de
estas clases de forma natural con el operador new y se puede
cambiar el elemento principal en cualquier momento, de forma
dinmica. La administracin de profundidad es ahora automtica y est
incorporada en Flash Player, por lo que ya no es necesario asignar
valores de profundidad. Se proporcionan nuevos mtodos para
especificar y administrar el orden z de los objetos. Novedades de
ActionScript 3.0 23
24. Gestin de contenido y datos dinmicos ActionScript 3.0
contiene mecanismos para cargar y gestionar elementos y datos en la
aplicacin Flash, que son intuitivos y coherentes en toda la API. La
nueva clase Loader ofrece un solo mecanismo para cargar archivos
SWF y elementos de imagen, y proporciona una forma de acceso a
informacin detallada sobre el contenido cargado. La clase URLLoader
proporciona un mecanismo independiente para cargar texto y datos
binarios en aplicaciones basadas en datos. La clase Socket
proporciona una forma de leer y escribir datos binarios en sockets
de servidor en cualquier formato. Acceso a datos de bajo nivel
Diversas API proporcionan acceso de bajo nivel a los datos, lo que
supone una novedad en ActionScript. La clase URLStream,
implementada por URLLoader, proporciona acceso a los datos como
datos binarios sin formato mientras se descargan. La clase
ByteArray permite optimizar la lectura, escritura y utilizacin de
datos binarios. La nueva API Sound proporciona control detallado
del sonido a travs de las clases SoundChannel y SoundMixer. Las
nuevas API relacionadas con la seguridad proporcionan informacin
sobre los privilegios de seguridad de un archivo SWF o contenido
cargado, lo que permite gestionar mejor los errores de seguridad.
Utilizacin de texto ActionScript 3.0 contiene un paquete flash.text
para todas las API relacionadas con texto. La clase TextLineMetrics
proporciona las medidas detalladas de una lnea de texto en un campo
de texto; sustituye el mtodo TextField.getLineMetrics() de
ActionScript 2.0. La clase TextField contiene varios mtodos nuevos
de bajo nivel interesantes, que pueden proporcionar informacin
especfica sobre una lnea de texto o un solo carcter en un campo de
texto. Dichos mtodos son: getCharBoundaries(), que devuelve un
rectngulo que representa el recuadro de delimitacin de un carcter,
getCharIndexAtPoint(), que devuelve el ndice del carcter en un
punto especificado, y getFirstCharInParagraph(), que devuelve el
ndice del primer carcter en un prrafo. Los mtodos de nivel de lnea
son: getLineLength(), que devuelve el nmero de caracteres en una
lnea de texto especificada, y getLineText(), que devuelve el texto
de la lnea especificada. Una nueva clase Font proporciona un medio
para administrar las fuentes incorporadas en archivos SWF. 24
Introduccin a ActionScript 3.0
25. Compatibilidad con versiones anteriores Como siempre, Flash
Player proporciona compatibilidad completa con el contenido
publicado previamente con versiones anteriores. Cualquier contenido
que se ejecutara en versiones anteriores de Flash Player puede
ejecutarse en Flash Player 9. Sin embargo, la introduccin de
ActionScript 3.0 en Flash Player 9 presenta algunas dificultades de
interoperabilidad entre el contenido antiguo y el contenido nuevo
que se ejecuta en Flash Player 9. Algunos de los problemas de
compatibilidad que pueden surgir son: No se puede combinar cdigo
ActionScript 1.0 2.0 con cdigo ActionScript 3.0 en un archivo SWF.
El cdigo ActionScript 3.0 puede cargar un archivo SWF escrito en
ActionScript 1.0 2.0, pero no puede acceder a las variables y
funciones del archivo SWF. Los archivos SWF escritos en
ActionScript 1.0 2.0 no pueden cargar archivos SWF escritos en
ActionScript 3.0. Esto significa que los archivos SWF creados en
Flash 8 o Flex Builder 1.5 o versiones anteriores no pueden cargar
archivos SWF de ActionScript 3.0. La nica excepcin a esta regla es
que un archivo SWF de ActionScript 2.0 puede sustituirse a s mismo
por un archivo SWF de ActionScript 3.0, siempre y cuando el archivo
SWF de ActionScript 2.0 no haya cargado ningn elemento en ninguno
de sus niveles. Para ello, el archivo SWF de ActionScript 2.0 debe
realizar una llamada a loadMovieNum(), pasando un valor 0 al
parmetro level. En general, los archivos SWF escritos en
ActionScript 1.0 2.0 deben migrarse si van a funcionar
conjuntamente con archivos SWF escritos en ActionScript 3.0. Por
ejemplo, supongamos que se crea un reproductor de medios con
ActionScript 2.0. El reproductor de medios carga contenido diverso
tambin creado con ActionScript 2.0. No es posible crear contenido
nuevo en ActionScript 3.0 y cargarlo en el reproductor de medios.
Es necesario migrar el reproductor de vdeo a ActionScript 3.0. No
obstante, si se crea un reproductor de medios en ActionScript 3.0,
dicho reproductor puede realizar cargas sencillas del contenido de
ActionScript 2.0. Compatibilidad con versiones anteriores 25
26. En la siguiente tabla se resumen las limitaciones de las
versiones anteriores de Flash Player en lo referente a la carga de
nuevo contenido y a la ejecucin de cdigo, as como las limitaciones
relativas a la reutilizacin de scripts entre archivos SWF escritos
en distintas versiones de ActionScript. Funcionalidad que ofrece
Entorno de tiempo de ejecucin Flash Player 7 Puede cargar archivos
SWF publicados para Contiene esta AVM Ejecuta archivos SWF escritos
en ActionScript Flash Player 8 Flash Player 9 7 y versiones
anteriores 8 y versiones anteriores 9 y versiones anteriores AVM1
AVM1 AVM1 y AVM2 1.0 y 2.0 1.0 y 2.0 1.0, 2.0 y 3.0 Funcionalidad
que ofrece* Contenido creado en ActionScript 1.0 y 2.0 Puede cargar
contenido y ejecutar cdigo en contenido creado en Puede reutilizar
contenido de scripts creado en ActionScript 3.0 Slo ActionScript
1.0 y 2.0 ActionScript 1.0 y 2.0, y ActionScript 3.0 Slo
ActionScript 1.0 y 2.0 ActionScript 3.0 * Contenido ejecutado en
Flash Player 9 o versiones posteriores. El contenido ejecutado en
Flash Player 8 o versiones anteriores puede cargar, mostrar,
ejecutar y reutilizar scripts nicamente de ActionScript 1.0 y 2.0.
ActionScript 3.0 a travs de LocalConnection. ActionScript 1.0 y 2.0
a travs de LocalConnection. 26 Introduccin a ActionScript 3.0
27. CAPTULO 2 2 Introduccin a ActionScript Este captulo se ha
diseado como punto de partida para empezar programar en
ActionScript. Aqu se proporcionan las bases necesarias para
comprender los conceptos y ejemplos descritos en el resto de pginas
de este manual. Para comenzar, se ofrece una descripcin de los
conceptos bsicos de programacin en el contexto de su aplicacin en
ActionScript. Tambin se tratan los aspectos fundamentales de la
organizacin y creacin de una aplicacin ActionScript. Contenido
Fundamentos de la programacin . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 27 Utilizacin de
objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 31 Elementos comunes
de los programas . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 41 Ejemplo: Animation portfolio piece
(sitio de muestras de animacin) . . . . . . . . . . . 44 Creacin de
aplicaciones con ActionScript . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 48 Creacin de clases personalizadas .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 53 Ejemplo: creacin de una aplicacin bsica . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Ejecucin
de ejemplos posteriores. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 64 Fundamentos de la
programacin Dado que ActionScript es un lenguaje de programacin,
ser de gran ayuda comprender primero algunos conceptos generales de
programacin de ordenadores. Para qu sirven los programas
informticos En primer lugar, resulta til entender qu es un programa
informtico y para qu sirve. Un programa informtico se caracteriza
por dos aspectos principales: Un programa es una serie de
instrucciones o pasos que debe llevar a cabo el equipo. Cada paso
implica en ltima instancia la manipulacin de informacin o datos.
27
28. En general, un programa informtico es simplemente una lista
de instrucciones paso a paso que se dan al equipo para que las
lleve a cabo una a una. Cada una de las instrucciones se denomina
sentencia. Como se ver a lo largo de este manual, en ActionScript
cada sentencia finaliza con un punto y coma. Lo que realiza
bsicamente una instruccin dada en un programa es manipular algn bit
de datos almacenado en la memoria del equipo. En un caso sencillo,
se puede indicar al equipo que sume dos nmeros y almacene el
resultado en su memoria. En un caso ms complejo, se podra tener un
rectngulo dibujado en la pantalla y escribir un programa para
moverlo a algn otro lugar de la pantalla. El equipo realiza un
seguimiento de determinada informacin relativa al rectngulo: las
coordenadas x e y que indican su ubicacin, la anchura y altura, el
color, etc. Cada uno de estos bits de informacin se almacena en
algn lugar de la memoria del equipo. Un programa para mover el
rectngulo a otra ubicacin incluira pasos como cambiar la coordenada
x a 200; cambiar la coordenada y a 150 (especificando nuevos
valores para las coordenadas x e y). Por supuesto, el equipo
procesa estos datos de algn modo para convertir estos nmeros en la
imagen que aparece en la pantalla; pero para el nivel de detalle
que aqu interesa, basta con saber que el proceso de mover un
rectngulo en la pantalla slo implica en realidad un cambio de bits
de datos en la memoria del equipo. Variables y constantes Dado que
la programacin implica principalmente cambiar datos en la memoria
del equipo, tiene que haber una forma de representar un solo dato
en el programa. Una variable es un nombre que representa un valor
en la memoria del equipo. Cuando se escriben sentencias para
manipular valores, se escribe el nombre de la variable en lugar del
valor; cuando el equipo ve el nombre de la variable en el programa,
busca en su memoria y utiliza el valor que all encuentra. Por
ejemplo, si hay dos variables denominadas value1 y value2, cada una
de las cuales contiene un nmero, para sumar esos dos nmeros se
podra escribir la sentencia: value1 + value2 Cuando lleve a cabo
los pasos indicados, el equipo buscar los valores de cada variable
y los sumar. En ActionScript 3.0, una variable se compone realmente
de tres partes distintas: El nombre de la variable El tipo de datos
que puede almacenarse en la variable El valor real almacenado en la
memoria del equipo 28 Introduccin a ActionScript
29. Se acaba de explicar cmo el equipo utiliza el nombre como
marcador de posicin del valor. El tipo de datos tambin es
importante. Cuando se crea una variable en ActionScript, se
especifica el tipo concreto de datos que contendr; a partir de ah,
las instrucciones del programa slo pueden almacenar ese tipo de
datos en la variable y se puede manipular el valor con las
caractersticas particulares asociadas a su tipo de datos. En
ActionScript, para crear una variable (se conoce como declarar la
variable), se utiliza la sentencia var: var value1:Number; En este
caso, se ha indicado al equipo que cree una variable denominada
value1, que contendr nicamente datos numricos (Number es un tipo de
datos especfico definido en ActionScript). Tambin es posible
almacenar un valor directamente en la variable: var value2:Number =
17; En Adobe Flash CS3 Professional hay otra forma posible de
declarar una variable. Cuando se coloca un smbolo de clip de
pelcula, un smbolo de botn o un campo de texto en el escenario, se
le puede asignar un nombre de instancia en el inspector de
propiedades. En segundo plano, Flash crea una variable con el mismo
nombre que la instancia, que se puede utilizar en el cdigo
ActionScript para hacer referencia a ese elemento del escenario.
As, por ejemplo, si hay un smbolo de clip de pelcula en el
escenario y se le asigna el nombre de instanciarocketShip, siempre
que se use la variable rocketShip en el cdigo ActionScript, se
estar manipulando dicho clip de pelcula. Tipos de datos En
ActionScript se pueden utilizar muchos tipos de datos para las
variables que se crean. Algunos de estos tipos de datos se pueden
considerar sencillos o fundamentales: String: un valor de texto
como, por ejemplo, un nombre o el texto de un captulo de un libro
Numeric: ActionScript 3.0 incluye tres tipos de datos especficos
para datos numricos: int: un entero (un nmero no fraccionario)
Number: cualquier valor numrico, incluidos los valores
fraccionarios o no fraccionarios uint: un entero sin signo, es
decir, que no puede ser negativo Boolean: un valor true (verdadero)
o false (falso), por ejemplo, si un conmutador est activado o si
dos valores son iguales Fundamentos de la programacin 29
30. Los tipos de datos sencillos representan un solo dato: por
ejemplo, un solo nmero o una sola secuencia de texto. No obstante,
la mayora de los tipos de datos definidos en ActionScript podran
describirse como tipos de datos complejos porque representan un
conjunto de valores agrupados. Por ejemplo, una variable con el
tipo de datos Date representa un solo valor: un momento temporal.
Sin embargo, dicho valor de fecha se representa realmente con
varios valores: da, mes, ao, horas, minutos, segundos, etc., todos
ellos nmeros individuales. As pues, aunque se perciba una fecha
como un solo valor (y se pueda tratar como tal creando una variable
Date), internamente el equipo lo considera un grupo de varios
valores que conjuntamente definen una sola fecha. La mayora de los
tipos de datos incorporados y los tipos de datos definidos por los
programadores son complejos. Algunos de los tipos de datos
complejos que podran reconocerse son: MovieClip: un smbolo de clip
de pelcula TextField: un campo de texto dinmico o de texto de
entrada SimpleButton: un smbolo de botn Date: informacin sobre un
solo momento temporal (una fecha y hora) Para referirse a los tipos
de datos, a menudo se emplean como sinnimos las palabras clase y
objeto. Una clase es simplemente la definicin de un tipo de datos;
es como una plantilla de todos los objetos del tipo de datos, como
si se dijera que todas las variables del tipo de datos Ejemplo
tiene estas caractersticas: A, B y C. Por otro lado, un objeto es
simplemente una instancia real de una clase; una variable cuyo tipo
de datos es MovieClip podra describirse como un objeto MovieClip.
Se puede decir lo mismo con distintos enunciados: El tipo de datos
de la variable myVariable es Number. La variable myVariable es una
instancia de Number. La variable myVariable es un objeto Number. La
variable myVariable es una instancia de la clase Number. 30
Introduccin a ActionScript
31. Utilizacin de objetos ActionScript es lo que se denomina un
lenguaje de programacin orientado a objetos. La programacin
orientada a objetos es simplemente un enfoque de la programacin, es
decir, una forma de organizar el cdigo en un programa mediante
objetos. Anteriormente se ha definido un programa informtico como
una serie de pasos o instrucciones que lleva a cabo el equipo. As
pues, conceptualmente se podra imaginar un programa informtico
simplemente como una larga lista de instrucciones. Sin embargo, en
la programacin orientada a objetos, las instrucciones del programa
se dividen entre distintos objetos; el cdigo se agrupa en segmentos
de funcionalidad, de modo que los tipos de funcionalidad
relacionados o los elementos de informacin relacionados se agrupan
en un contenedor. De hecho, si se ha trabajado con smbolos en
Flash, se estar acostumbrado a trabajar con objetos. Supongamos que
se ha definido un smbolo de clip de pelcula (por ejemplo, el dibujo
de un rectngulo) y se ha colocado una copia del mismo en el
escenario. Dicho smbolo de clip de pelcula tambin es (literalmente)
un objeto en ActionScript; es una instancia de la clase MovieClip.
Es posible modificar algunas de las caractersticas del clip de
pelcula. Por ejemplo, cuando est seleccionado, es posible cambiar
algunos valores en el inspector de propiedades como, por ejemplo,
la coordenada x o la anchura, o realizar algunos ajustes de color
como cambiar su valor de transparencia alfa o aplicarle un filtro
de sombra. Otras herramientas de Flash permiten realizar ms
cambios, como utilizar la herramienta Transformacin libre para
girar el rectngulo. Todas estas acciones para modificar un smbolo
de clip de pelcula en el entorno de edicin de Flash tambin se
pueden realizar en ActionScript cambiando los elementos de datos
que se agrupan en un nico paquete denominado objeto MovieClip. En
la programacin orientada a objetos de ActionScript, hay tres tipos
de caractersticas que puede contener cualquier clase: Propiedades
Mtodos Eventos Estos elementos se utilizan conjuntamente para
administrar los elementos de datos que utiliza el programa y para
decidir qu acciones deben llevarse a cabo y en qu orden. Utilizacin
de objetos 31
32. Propiedades Una propiedad representa uno de los elementos
de datos que se empaquetan en un objeto. Un objeto Song (cancin)
puede tener propiedades denominadas artist (artista) y title
(ttulo); la clase MovieClip tiene propiedades como rotation
(rotacin), x, width (anchura) y alpha (alfa). Se trabaja con las
propiedades del mismo modo que con las variables individuales; de
hecho, se podra pensar que las propiedades son simplemente las
variables secundarias contenidas en un objeto. A continuacin se
muestran algunos ejemplos de cdigo ActionScript que utiliza
propiedades. Esta lnea de cdigo mueve el objeto MovieClip
denominado square a la coordenada x = 100 pxeles: square.x = 100;
Este cdigo utiliza la propiedad rotation para que el objeto
MovieClip square gire de forma correspondiente a la rotacin del
objeto MovieClip triangle: square.rotation = triangle.rotation;
Este cdigo altera la escala horizontal del objeto MovieClip square
para hacerlo 1,5 veces ms ancho: square.scaleX = 1.5; Observe la
estructura comn: se utiliza una variable (square, triangle) como
nombre del objeto, seguida de un punto (.) y del nombre de la
propiedad (x, rotation, scaleX). El punto, denominado operador de
punto, se utiliza para indicar el acceso a uno de los elementos
secundarios de un objeto. El conjunto de la estructura (nombre de
variable-punto-nombre de propiedad) se utiliza como una sola
variable, como un nombre de un solo valor en la memoria del equipo.
Mtodos Un mtodo es una accin que puede llevar a cabo un objeto. Por
ejemplo, si se ha creado un smbolo de clip de pelcula en Flash con
varios fotogramas clave y animacin en la lnea de tiempo, ese clip
de pelcula podr reproducirse, detenerse o recibir instrucciones
para mover la cabeza lectora a un determinado fotograma. Este cdigo
indica al objeto MovieClip denominado shortFilm que inicie su
reproduccin: shortFilm.play(); Esta lnea hace que el objeto
MovieClip denominado shortFilm deje de reproducirse (la cabeza
lectora se detiene como si se hiciera una pausa en un vdeo):
shortFilm.stop(); 32 Introduccin a ActionScript
33. Este cdigo hace que un objeto MovieClip denominado
shortFilm mueva su cabeza lectora al fotograma 1 y deje de
reproducirse (como si se rebobinara un vdeo):
shortFilm.gotoAndStop(1); Como puede verse, para acceder a los
mtodos, se debe escribir el nombre del objeto (una variable), un
punto y el nombre del mtodo seguido de un parntesis, siguiendo la
misma estructura que para las propiedades. El parntesis es una
forma de indicar que se est llamando al mtodo, es decir, indicando
al objeto que realice esa accin. Algunos valores (o variables) se
incluyen dentro del parntesis para pasar informacin adicional
necesaria para llevar a cabo la accin. Estos valores se denominan
parmetros del mtodo. Por ejemplo, el mtodo gotoAndStop() necesita
saber cul es el fotograma al que debe dirigirse, de modo que
requiere un solo parmetro en el parntesis. Otros mtodos como play()
y stop() no requieren informacin adicional porque son descriptivos
por s mismos. Sin embargo, tambin se escriben con parntesis. A
diferencia de las propiedades (y las variables), los mtodos no se
usan como identificadores de valores. No obstante, algunos mtodos
pueden realizar clculos y devolver un resultado que puede usarse
como una variable. Por ejemplo, el mtodo toString() de la clase
Number convierte el valor numrico en su representacin de texto: var
numericData:Number = 9; var textData:String =
numericData.toString(); Por ejemplo, se usara el mtodo toString()
para mostrar el valor de una variable Number en un campo de texto
de la pantalla. La propiedad text de la clase TextField (que
representa el contenido de texto real que se muestra en la
pantalla) se define como String (cadena), de modo que slo puede
contener valores de texto. Esta lnea de cdigo convierte en texto el
valor numrico de la variable numericData y, a continuacin, hace que
aparezca en la pantalla en el objeto TextField denominado
calculatorDisplay: calculatorDisplay.text = numericData.toString();
Eventos Se ha descrito un programa informtico como una serie de
instrucciones que el ordenador lleva a cabo paso a paso. Algunos
programas informticos sencillos no son ms que eso: unos cuantos
pasos que el ordenador ejecuta, tras los cuales finaliza el
programa. Sin embargo, los programas de ActionScript se han diseado
para continuar ejecutndose, esperando los datos introducidos por el
usuario u otras acciones. Los eventos son los mecanismos que
determinan qu instrucciones lleva a cabo el ordenador y cundo las
realiza. Utilizacin de objetos 33
34. Bsicamente, los eventos son acciones que ActionScript
conoce y a las que puede responder. Muchos eventos se relacionan
con la interaccin del usuario (hacer clic en un botn, presionar una
tecla del teclado, etc.) pero tambin existen otros tipos de
eventos. Por ejemplo, si se usa ActionScript para cargar una imagen
externa, existe un evento que puede indicar al usuario cundo
finaliza la carga de la imagen. En esencia, cuando se ejecuta un
programa de ActionScript, Adobe Flash Player simplemente espera a
que ocurran determinadas acciones y, cuando suceden, ejecuta el
cdigo ActionScript que se haya especificado para tales eventos.
Gestin bsica de eventos La tcnica para especificar determinadas
acciones que deben realizarse como respuesta a eventos concretos se
denomina gestin de eventos. Cuando se escribe cdigo ActionScript
para llevar a cabo la gestin de eventos, se deben identificar tres
elementos importantes: El origen del evento: en qu objeto va a
repercutir el evento? Por ejemplo, en qu botn se har clic o qu
objeto Loader est cargando la imagen? El origen del evento tambin
se denomina objetivo del evento, ya que es el objeto al que Flash
Player (donde tiene lugar realmente el evento) destina el evento.
El evento: qu va a suceder, a qu se va a responder? Es importante
identificar esto porque muchos objetos activan varios eventos. La
respuesta: qu pasos hay que llevar a cabo cuando ocurra el evento?
Siempre que se escriba cdigo ActionScript para gestionar eventos,
el cdigo debe incluir estos tres elementos y debe seguir esta
estructura bsica (los elementos en negrita son marcadores de
posicin que hay que completar en cada caso concreto): function
eventResponse(eventObject:EventType):void { // Aqu deben incluirse
las acciones realizadas en respuesta al evento. }
eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);
Este cdigo hace dos cosas. En primer lugar, define una funcin, que
es la forma de especificar las acciones que desean realizarse como
respuesta al evento. A continuacin, llama al mtodo
addEventListener() del objeto de origen, bsicamente suscribiendo la
funcin al evento especificado de modo que se lleven a cabo las
acciones de la funcin cuando ocurra el evento. Cada una de estas
partes se tratar con mayor detalle. 34 Introduccin a
ActionScript
35. Una funcin proporciona un modo de agrupar acciones con un
nico nombre que viene a ser un nombre de mtodo abreviado para
llevar a cabo las acciones. Una funcin es idntica a un mtodo
excepto en que no est necesariamente asociada a una clase
determinada (de hecho, es posible definir un mtodo como una funcin
asociada a una clase determinada). Cuando se crea una funcin para
la gestin de eventos, se debe elegir el nombre de la funcin
(denominada eventResponse en este caso) y se debe especificar adems
un parmetro (denominado eventObject en este ejemplo). Especificar
un parmetro de una funcin equivale a declarar una variable, de modo
que tambin hay que indicar el tipo de datos del parmetro. Hay una
clase de ActionScript definida para cada evento y el tipo de datos
que se especifica para el parmetro de funcin es siempre la clase
asociada con el evento especfico al que se desea responder. Por
ltimo, entre las llaves de apertura y cierre ({ ... }), se escriben
las instrucciones que debe llevar a cabo el equipo cuando ocurra el
evento. Despus de escribir la funcin de gestin de eventos, es
necesario indicar al objeto de origen del evento (el objeto en el
que se produce el evento, por ejemplo, el botn) que se desea llamar
a la funcin cuando ocurra el evento. Para ello es necesario llamar
al mtodo addEventListener() de dicho objeto (todos los objetos que
tienen eventos tambin tienen un mtodo addEventListener()). El mtodo
addEventListener() utiliza dos parmetros: En primer lugar, el
nombre del evento especfico al que se desea responder. De nuevo,
cada evento se asocia a una clase especfica, que tiene a su vez un
valor especial predefinido para cada evento (como un nombre
exclusivo propio del evento), que debe usarse como primer parmetro.
En segundo lugar, el nombre de la funcin de respuesta al evento.
Hay que tener en cuenta que el nombre de una funcin debe escribirse
sin parntesis cuando se pasa como un parmetro. Anlisis del proceso
de gestin de eventos A continuacin se ofrece una descripcin paso a
paso del proceso que tiene lugar cuando se crea un detector de
eventos. En este caso, es un ejemplo de creacin de funcin de
detector a la que se llama cuando se hace clic en un objeto
denominado myButton. El cdigo escrito por el programador es el
siguiente: function eventResponse(event:MouseEvent):void { //
Actions performed in response to the event go here. }
myButton.addEventListener(MouseEvent.CLICK, eventResponse);
Utilizacin de objetos 35
36. Al ejecutarse en Flash Player, el cdigo funcionara de la
manera siguiente: 1. Cuando se carga el archivo SWF, Flash Player
detecta que existe una funcin denominada eventResponse(). 2. A
continuacin, Flash Player ejecuta el cdigo (especficamente, las
lneas de cdigo que no estn en una funcin). En este caso, slo una
lnea de cdigo que llama al mtodo addEventListener() en el objeto de
origen de evento (denominado myButton) y pasa la funcin
eventResponse como parmetro. 36 Introduccin a ActionScript
37. a. 3. Internamente, myButton tiene una lista de funciones
que detecta cada uno de sus eventos, por lo que cuando se llama a
su mtodo addEventListener(), myButton almacena la funcin
eventResponse() en su lista de detectores de eventos. Cuando el
usuario hace clic en el objeto myButton, se activa el evento click
(identificado como MouseEvent.CLICK en el cdigo). En este punto
ocurre lo siguiente: a. Flash Player crea un objeto, una instancia
de la clase asociada con el evento en cuestin (MouseEvent en este
ejemplo). Para muchos eventos esto ser una instancia de la clase
Event, para eventos del ratn ser una instancia de MouseEvent y para
otros eventos ser una instancia de la clase asociada con el evento.
Este objeto que se crea se denomina objeto de evento y contiene
informacin especfica sobre el evento que se ha producido: el tipo
de evento, dnde se ha producido y otros datos especficos del evento
si corresponde. Utilizacin de objetos 37
38. b. c. 38 A continuacin, Flash Player busca en la lista de
detectores de eventos almacenada en myButton. Recorre estas
funciones de una en una, llamando a cada funcin y pasando el objeto
de evento a la funcin como parmetro. Como la funcin eventResponse()
es uno de los