2. Copyright 2008 Adobe Systems Incorporated. All rights
reserved. Programacin con Adobe ActionScript 3.0 para Adobe Flash
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, the Adobe
logo, Adobe AIR, ActionScript, Flash, Flash Lite, Flex, Flex
Builder, MXML, and Pixel Bender are either registered trademarks or
trademarks of Adobe Systems Incorporated in the United States
and/or other countries. ActiveX and Windows are either registered
trademarks or trademarks of Microsoft Corporation in the United
States and other countries. Macintosh is a trademark of Apple Inc.,
registered in the United States and other countries. Java is a
trademark or registered trademark of Sun Microsystems, Inc. in the
United States and other countries. All other trademarks are the
property of their respective owners. This product includes software
developed by the Apache Software Foundation
(http://www.apache.org/). MPEG Layer-3 audio compression technology
licensed by Fraunhofer IIS and Thomson Multimedia
(http://www.mp3licensing.com) Speech compression and decompression
technology licensed from Nellymoser, Inc. (www.nellymoser.com).
Video compression and decompression is powered by On2 TrueMotion
video technology. 1992-2005 On2 Technologies, Inc. All Rights
Reserved. http://www.on2.com. This product includes software
developed by the OpenSymphony Group (http://www.opensymphony.com/).
This product contains either BSAFE and/or TIPEM software by RSA
Security, Inc. Sorenson Spark video compression and decompression
technology licensed from Sorenson Media, Inc. Adobe Systems
Incorporated, 345 Park Avenue, San Jose, California 95110, USA
Notice to U.S. government end users. The software and documentation
are Commercial Items, as that term is defined at 48 C.F.R. 2.101,
consisting of Commercial Computer Software and Commercial Computer
Software Documentation, as such terms are used in 48 C.F.R. 12.212
or 48 C.F.R. 227.7202, as applicable. Consistent with 48 C.F.R.
12.212 or 48 C.F.R. 227.7202-1 through 227.7202-4, as applicable,
the Commercial Computer Software and Commercial Computer Software
Documentation are being licensed to U.S. Government end users (a)
only as Commercial items and (b) with only those rights as are
granted to all other end users pursuant to the terms and conditions
herein. Unpublished-rights reserved under the copyright laws of the
United States. Adobe Systems Incorporated, 345 Park Avenue, San
Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe
agrees to comply with all applicable equal opportunity laws
including, if appropriate, the provisions of Executive Order 11246,
as amended, Section 402 of the Vietnam Era Veterans Readjustment
Assistance Act of 1974 (38 USC 4212), and Section 503 of the
Rehabilitation Act of 1973, as amended, and the regulations at 41
CFR Parts 60-1 through 60-60, 60-250 ,and 60-741. The affirmative
action clause and regulations contained in the preceding sentence
shall be incorporated by reference.
10. 1 Captulo 1: Informacin sobre este manual En este manual se
ofrecen unas bases para el desarrollo de aplicaciones en Adobe
ActionScript 3.0. Para comprender mejor las ideas y las tcnicas
descritas, debe estar familiarizado con conceptos de programacin
generales como, por ejemplo, tipos de datos, variables, bucles y
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. 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 2
a 5 se ofrece informacin general sobre la programacin en
ActionScript. Se abordan los conceptos bsicos de ActionScript 3.0,
incluida la sintaxis del lenguaje, sentencias, operadores y
programacin ActionScript orientada a objetos. En los captulos 6 a
11, 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. En los captulos 12 a 32, se describen las API
de Flash Player y de Adobe AIR. Se describen funciones importantes
implementadas en paquetes y clases especficos de Adobe Flash Player
y Adobe AIR, como el control de eventos, los objetos y la lista de
visualizacin, 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 forma que
resulten fciles de cargar y utilizar con Adobe Flash CS4
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 3. Utilizando
cualquier editor de texto y un compilador de lnea de comandos, como
el proporcionado con Flex Builder 3. Usando la herramienta de
edicin Adobe Flash CS4 Professional. Para obtener ms informacin
sobre los entornos de desarrollo de ActionScript, consulte
Introduccin a ActionScript 3.0 en la pgina 4 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 de
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 obtener ms informacin,
consulte Acceso a la documentacin de ActionScript en la pgina
2.
11. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 2 Informacin
sobre este manual Acceso a la documentacin de ActionScript Este
manual se centra en describir ActionScript 3.0, un completo y
eficaz lenguaje de programacin orientado 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, mtodos, propiedades y eventos del
lenguaje. La Referencia del lenguaje y componentes ActionScript 3.0
proporciona informacin de referencia detallada sobre el ncleo del
lenguaje, los componentes de la herramienta de edicin de Flash
(paquetes fl) y las API de Flash Player y de Adobe AIR (paquetes
flash). Documentacin de Flash Si utiliza la herramienta de edicin
de Flash, es posible que desee consultar estos manuales: Manual
Descripcin Utilizacin de Flash Describe la manera de desarrollar
aplicaciones Web dinmicas en la herramienta 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 y de
Adobe AIR 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 la herramienta de edicin de Flash
y la API de ActionScript 3.0. Utilizacin de componentes
ActionScript 3.0 Explica los detalles del uso de componentes para
desarrollar aplicaciones creadas por Flash. Desarrollo de
aplicaciones de Adobe AIR con Flash CS4 Professional Describe cmo
desarrollar e implementar aplicaciones de Adobe AIR utilizando
ActionScript 3.0 y la API de Adobe AIR en 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 la herramienta de edicin de Flash y la API de
ActionScript 2.0. Utilizacin de componentes ActionScript 2.0
Explica de forma detallada cmo utilizar componentes de ActionScript
2.0 para desarrollar aplicaciones creadas por 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 para las funciones de
ActionScript disponibles en Flash Lite 2.x
12. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 3 Informacin
sobre este manual Manual Descripcin 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 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 Introduccin a Flash
Lite 1.x Proporciona una introduccin a Flash Lite 1.x y describe el
modo de comprobar contenido con el emulador de Adobe Device Central
CS4 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 el modo de uso de 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 desarrollo de Adobe y el Centro de diseo
de Adobe. Centro de desarrollo de Adobe El Centro de desarrollo de
Adobe contiene la informacin ms actualizada sobre ActionScript,
artculos sobre el desarrollo de aplicaciones reales e informacin
sobre nuevos problemas importantes. Consulte el Centro de
desarrollo de Adobe en http://www.adobe.com/es/devnet/. 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. Consulte el centro de
diseo en www.adobe.com/designcenter/.
13. 4 Captulo 2: Introduccin a ActionScript 3.0 En este captulo
se ofrece informacin general sobre Adobe ActionScript 3.0, una de
las versiones ms recientes e innovadoras de ActionScript.
ActionScript ActionScript es el lenguaje de programacin para los
entornos de tiempo de ejecucin de Adobe Flash Player y Adobe AIR.
Entre otras muchas cosas, activa la interactividad y la gestin de
datos en el contenido y las aplicaciones de Flash, Flex y AIR.
ActionScript se ejecuta mediante la mquina virtual ActionScript
(AVM), que forma parte de Flash Player y AIR. El cdigo de
ActionScript se suele compilar en 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 CS4
Professional o Adobe Flex Builder o el que est disponible en el SDK
de Adobe Flex. El cdigo de bytes est incorporado en los archivos
SWF ejecutados por Flash Player y AIR. 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 que mejoran las versiones anteriores son: Una
nueva mquina virtual de ActionScript, denominada AVM2, que utiliza
un nuevo conjunto de instrucciones de cdigo de bytes y proporciona
importantes mejoras de rendimiento. Una base de cdigo de compilador
ms moderna 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. 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, 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 y 10
admiten AVM9 por compatibilidad con contenido existente y heredado
de versiones anteriores. Para obtener ms informacin, consulte
Compatibilidad con versiones anteriores en la pgina 7.
14. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 5 Introduccin a
ActionScript 3.0 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. Nota: las aplicaciones de Adobe AIR tambin pueden utilizar
las API de Flash Player. 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 y Adobe AIR realizan una
verificacin de tipos en tiempo de ejecucin, mejorando la seguridad
de los 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. 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.
15. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 6 Introduccin a
ActionScript 3.0 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 obtener ms
informacin sobre la implementacin de E4X en ActionScript 3.0,
consulte Trabajo con XML en la pgina 232. Para ver la especificacin
de E4X publicada por ECMA, visite www.ecma-international.org.
Expresiones regulares ActionScript 3.0 ofrece compatibilidad nativa
con expresiones regulares, que permiten encontrar y manipular
cadenas rpidamente. ActionScript 3.0 implementa la compatibilidad
con expresiones regulares tal y como se definen en la especificacin
del lenguaje ECMAScript (ECMA-262) edicin 3. 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. 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 Las API de Flash Player en ActionScript 3.0 contienen
muchas de las clases que permiten controlar objetos a bajo nivel.
La arquitectura del lenguaje est diseada para ser mucho ms
intuitiva que en versiones anteriores. Hay demasiadas clases nuevas
para poder tratarlas con detalle, de modo que en las siguientes
secciones se destacan algunos cambios importantes. Nota: las
aplicaciones de Adobe AIR tambin puede utilizar las API de Flash
Player. 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.
16. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 7 Introduccin a
ActionScript 3.0 API de la lista de visualizacin La API de acceso a
la lista de visualizacin de Flash Player y Adobe AIR (el rbol que
contiene todos los elementos visuales de una aplicacin Flash) se
compone de clases para trabajar con elementos visuales simples. 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 y Adobe AIR, 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. Gestin de
contenido y datos dinmicos ActionScript 3.0 contiene mecanismos
para cargar y gestionar elementos y datos en la aplicacin, 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. Trabajo con texto
ActionScript 3.0 contiene un paquete flash.text para todas las API
relacionadas con texto. La clase TextLineMetrics proporciona
medidas detalladas para una lnea de texto en un campo de texto;
sustituye al mtodo TextFormat.getTextExtent() en ActionScript 2.0.
La clase TextField contiene una serie de nuevos mtodos interesantes
de bajo nivel que pueden ofrecer 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. 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 algunos retos 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.
17. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 8 Introduccin a
ActionScript 3.0 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 se deben migrar si van a funcionar de forma
conjunta con los archivos SWF escritos en ActionScript 3.0. Por
ejemplo, supongamos que se ha creado un reproductor de medios
utilizando ActionScript 2.0. El reproductor carga distinto
contenido que tambin se cre utilizando ActionScript 2.0. No es
posible crear nuevo contenido 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. 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 admitida Flash Player 7
Flash Player 8 Flash Player 9 y 10 Puede cargar archivos SWF
publicados para 7 y versiones anteriores 8 y versiones anteriores 9
(o 10) y versiones anteriores Contiene esta AVM AVM1 AVM1 AVM1 y
AVM2 Ejecuta archivos SWF escritos en 1.0 y 2.0 1.0 y 2.0 1.0, 2.0
y 3.0 ActionScript En la siguiente tabla, Funcionalidad admitida
hace referencia al contenido que se ejecuta en Flash Player 9 o
posterior. 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. Funcionalidad admitida
Contenido creado en ActionScript 1.0 y 2.0 Contenido creado en
ActionScript 3.0 Puede cargar contenido y ejecutar cdigo en Slo
ActionScript 1.0 y 2.0 ActionScript 1.0 y 2.0, y ActionScript 3.0
contenido creado en Puede reutilizar contenido de scripts creado en
Slo ActionScript 1.0 y 2.0 (ActionScript 3.0 a travs de conexin
local) ActionScript 1.0 y 2.0 a travs de LocalConnection.
ActionScript 3.0
18. 9 Captulo 3: Introduccin a ActionScript Este captulo se ha
diseado como punto de partida para empezar a 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. Fundamentos de
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. 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.
19. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 10 Introduccin
a ActionScript 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 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 CS4 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. Una constante es muy
similar a una variable en el sentido de que es un nombre que
representa a un valor en la memoria del equipo, con un tipo de
datos especfico. La diferencia es que a una constante slo se le
puede asignar un valor cada vez en el curso de una aplicacin
ActionScript. Tras asignar un valor a una constante, ste permanecer
invariable en toda la aplicacin. La sintaxis para declarar
constantes coincide con la de las variables, excepto por el hecho
de que se usa la palabra clave const en lugar de var: const
SALES_TAX_RATE:Number = 0.07; Una constante resulta til para
definir un valor que se utilizar en varios puntos de un proyecto y
que no cambiar en circunstancias normales. Cuando se utiliza una
constante en lugar de un valor literal el cdigo resulta ms legible.
Por ejemplo, es ms fcil entender la finalidad de una lnea de cdigo
que multiplica un precio por SALES_TAX_RATE que la de una lnea de
cdigo que lo haga por 0.07. Adems, si en un momento dado es preciso
cambiar el valor definido por una constante, slo habr que hacerlo
en un punto (la declaracin de la constante) cuando se utiliza una
constante para su representacin en el proyecto, en lugar de tener
que modificarlo varias veces como cuando se utilizan valores
literales especificados en el cdigo. Tipos de datos En
ActionScript, hay muchos tipos de datos que pueden utilizarse como
el tipo de datos de 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: Number: cualquier
valor numrico, incluidos los valores fraccionarios o no
fraccionarios int: un entero (un nmero no fraccionario) uint: un
entero sin signo, es decir, que no puede ser negativo
20. PROGRAMACIN CON ACTIONSCRIPT 3.0 PARA FLASH 11 Introduccin
a ActionScript Boolean: un valor true (verdadero) o false (falso),
por ejemplo, si un conmutador est activado o si dos valores son
iguales El tipo de datos sencillo representa a un solo elemento de
informacin: por ejemplo, un nico 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. No obstante, ese valor de fecha se representa en
realidad en forma de diferentes valores: el da, el mes, el ao, las
horas, los minutos, los segundos, etc., los cuales son 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 una especie de plantilla para todos los objetos del tipo de
datos, como afirmar que "todas las variables del tipo de datos
Example tiene estas caractersticas: A, B y C". Un objeto, por otra
parte, es una instancia real de una clase; una variable cuyo tipo
de datos sea MovieClip se podra describir 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. Trabajo
con 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