Macromedia, el logotipo de Macromedia, el logotipo de Made With Macromedia, Authorware, Backstage, Director, Extreme 3D y
Fontographer son marcas comerciales registradas. Afterburner, AppletAce, Authorware Interactive Studio, Backstage, Backstage Designer,
Backstage Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, DECK II, Director Multimedia Studio, Doc Around
the Clock, Extreme 3D, Flash, FreeHand, FreeHand Graphics Studio, Lingo, Macromedia xRes, MAGIC, Power Applets, Priority Access,
SoundEdit, Shockwave, Showcase, Tools to Power Your Ideas y Xtra son marcas comerciales de Macromedia, Inc. Otros nombres de
productos, logotipos, diseños, títulos, palabras o frases mencionados en esta publicación pueden ser marcas comerciales, marcas de
servicio o nombres registrados de Macromedia, Inc. o de otras entidades y pueden estar registrados en ciertas jurisdicciones.
Limitación de garantías de Apple
APPLE COMPUTER, INC. NO GARANTIZA, DE FORMA EXPRESA NI IMPLÍCITA, LA COMERCIABILIDAD
O IDONEIDAD PARA UN FIN DETERMINADO DEL PAQUETE DE SOFTWARE INFORMÁTICO INCLUIDO.
LA EXCLUSIÓN DE GARANTÍAS IMPLÍCITAS NO ESTÁ PERMITIDA EN ALGUNOS ESTADOS. LA RESTRICCIÓN
ANTERIOR PUEDE NO AFECTARLE. ESTA GARANTÍA LE PROPORCIONA DERECHOS LEGALES ESPECÍFICOS.
PUEDE TENER OTROS DERECHOS QUE VARÍAN SEGÚN LA LEGISLACIÓN LOCAL.
Redacción: Jody Bleyle, Mary Burger, Louis Dobrozensky, Stephanie Gowin, Marcelle Taylor y Judy Walthers Von Alten
Edición: Peter Fenczik, Rosana Francescato, Ann Szabla
Multimedia: George Brown, John “Zippy” Lehnus y Noah Zilberberg
Diseño de Ayuda e impresión: Chris Basmajian y Noah Zilberberg
Producción: Chris Basmajian y Rebecca Godbois
Gestión del proyecto de localización: Yuko Yagi
Producción de localización: Masayo “Noppe” Noda y Bowne Global Solutions
Agradecimiento especial a: Pablo Francisco Arrieta, Jeremy Clark, Brian Dister y todo el Grupo de Desarrollo de Flash, Michael
Dominguez, Margaret Dumas, Rosa Elva Elizondo, Sherri Harte, Yoshika Hedberg, Tim Hussey, Kipling Inscore, Alyn Kelley,
Pete Santangeli, Denise Seymour y todo el Grupo de Control de calidad de Flash, Cyn Taylor y Eric Wittman
Primera edición: Septiembre de 2000
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103 (EE.UU.)
ActionScript es el lenguaje de creación de scripts de Flash. Puede utilizar
ActionScript para controlar objetos en las películas de Flash con el fin de
crear elementos interactivos y de navegación y para ampliar Flash con el fin
de crear películas altamente interactivas y aplicaciones Web.
Novedades en el lenguaje ActionScript
de Flash 5
El lenguaje ActionScript de Flash 5 ofrece nuevas funciones muy interesantes
para la creación de sitios Web interactivos con juegos, formularios, encuestas e
interactividad en tiempo real sofisticadas como los sistemas de chat.
ActionScript de Flash 5 tiene muchas funciones y convenciones de sintaxis nuevas
que lo hacen similar en lo fundamental al lenguaje de programación JavaScript.
En este manual se explicarán los conceptos básicos de programación como
funciones, variables, sentencias, operadores, condicionales y bucles. El Capítulo 7
de esta manual, “Diccionario de ActionScript”, contiene entradas detalladas para
cada elemento de ActionScript.
En este manual no se pretende enseñar programación en general. Existen muchos
recursos disponibles que proporcionan información sobre los conceptos generales
de programación y sobre el lenguaje JavaScript.
17
La Asociación de Fabricantes de PCs Europea (ECMA, European Computers
Manufacturers Association) publicó un documento llamado ECMA-262 que se
deriva de JavaScript y que sirve como el estándar internacional para el lenguaje
JavaScript. ActionScript está basado en la especificación ECMA-262 que se
encuentra disponible en http://www.ecma.ch.
Netscape DevEdge Online tiene un centro de desarrollo de JavaScript (JavaScript
Developer Central http://developer.netscape.com/tech/javascript/index.html) que
contiene documentación y artículos útiles para comprender ActionScript. El
recurso más valioso es el manual Core JavaScript Guide que se encuentra en la
dirección http://developer.netscape.com/docs/manuals/js/core/jsguide/index.htm.
Diferencias entre ActionScript y JavaScript
No es necesario que conozca JavaScript para utilizar y aprender ActionScript.
Sin embargo, si ya conoce JavaScript, ActionScript le parecerá familiar. Algunas
de las diferencias entre ActionScript y JavaScript se detallan a continuación:
•
ActionScript no admite objetos específicos de navegador como Documento,
Ventana y Ancla.
ActionScript no admite por completo todos los objetos predefinidos
•
de JavaScript.
•
ActionScript admite las construcciones sintácticas que no se permiten en
JavaScript (por ejemplo, las acciones
tellTarget
ifFrameLoaded
y
y la
sintaxis de barras).
•
ActionScript no admite algunas de las construcciones sintácticas de JavaScript,
como los rótulos
•
ActionScript no admite el constructor de JavaScript
•
En ActionScript, la acción
de variables
•
En JavaScript,
compatibilidad con Flash 4,
En JavaScript, evaluar
•
. En Flash 5, por compatibilidad con Flash 4 , evaluar
NaN
switch, continue, try, catch, throw
solamente puede realizar referencias
eval
.
toString
undefined
de
undefined
toString
es
de
undefined
en un contexto numérico da como resultado
undefined
statement
y
Function
.
. En Flash 5, para su
es
.
" "
undefined
da como
.
resultado 0.
ActionScript no admite Unicode; admite ISO-8859-1 y conjuntos de
•
caracteres Shift-JIS.
18
Introduction
Edición de texto
Puede introducir scripts directamente en el panel Acciones en Modo Experto.
También puede elegir elementos de un menú emergente o de una lista de la
Caja de herramientas como lo hacía en Flash 4.
Sintaxis de punto
Puede utilizar la sintaxis de punto para obtener y establecer las propiedades y los
métodos de un objeto, incluidas instancias y variables de clip de película. Puede
utilizar la sintaxis de punto en lugar de la sintaxis de barras que se utilizaba en
Flash 4. Ya no se utiliza la sintaxis de barras, pero aún la admite Flash Player.
Tipos de datos
El lenguaje ActionScript de Flash 5 admite los siguientes tipos de datos: cadena,
número, booleano, objeto y clip de película. Los distintos tipos de datos le
permiten utilizar diferentes tipos de información en ActionScript. Por ejemplo,
puede crear matrices y matrices asociativas.
Variables locales
Puede declarar variables locales que expiran al final de la lista de acciones o de la
llamada de función. Esto le permite gestionar la memoria y volver a utilizar los
nombres de variables. Todas las variables de Flash 4 eran permanentes; incluso las
variables temporales como los contadores de bucle que permanecían en la película
hasta que finalizaba.
Funciones definidas por el usuario
Puede definir funciones con parámetros que devuelven valores. Esto le permite
volver a utilizar los bloques de código en los scripts. En Flash 4, podía volver a
utilizar el código mediante la acción
pero no podía pasar parámetros ni
call
devolver valores.
Procedimientos iniciales
19
Objetos predefinidos
Puede utilizar los objetos predefinidos para acceder y manipular ciertos tipos de
información. A continuación se muestran algunos de los objetos predefinidos:
El objeto Math dispone de un complemento completo de constantes y
•
funciones matemáticas integradas como E (constante de Euler),
y
(arco tangente).
atan
El objeto Date le permite obtener información sobre la fecha y la hora del
•
(Coseno),
cos
sistema en el que se esté ejecutando Flash Player.
•
El objeto Sound le permite agregar sonidos a una película y controlar los
sonidos en una película a medida que se reproduce. Por ejemplo, puede ajustar
el volumen (
•
El objeto Mouse le permite ocultar el cursor estándar para que pueda utilizar
setVolume
), o el balance (
setPan
).
un cursor personalizado.
El objeto MovieClip le permite controlar clips de película sin utilizar una
•
acción envolvente como
loadMovie
, o
duplicateMovieClip
tellTarget
la sintaxis de punto (por ejemplo,
. Puede llamar a un método como
desde un nombre de instancia utilizando
myMovieClip.play()
).
play
Acciones de clip
Puede utilizar la acción
onClipEvent
para asignar acciones directamente a
instancias de clip de película en el Escenario. La acción onClipEvent dispone de
eventos como
load, enterFrame, mouseMove
, y
data
que le permiten crear
nuevas clases de interactividad avanzada.
,
20
Acciones nuevas
Puede utilizar acciones nuevas como do..while y for para crear bucles
complejos. Otras acciones nuevas se implementan como métodos del objeto
MovieClip; por ejemplo, getBounds, attachMovie, hitTest, swapDepths, y
globalToLocal.
Clips inteligentes
Los Clips inteligentes tienen scripts internos que el usuario, u otro autor, puede
cambiar sin utilizar el panel Acciones. Puede pasar valores a un Clip inteligente
por medio de los parámetros de clip que puede definir en la Biblioteca.
Introduction
Depurador
El Depurador le permite ver y cambiar los valores de variables y propiedades
cuando está reproduciendo una película en el modo de prueba de película, en el
reproductor Flash Player independiente o en un navegador Web. Esto le permite
encontrar fácilmente los problemas en su programación ActionScript.
Compatibilidad con XML
El objeto XML predefinido le permite convertir ActionScript en documentos
XML y pasarlos a las aplicaciones de servidor. También puede utilizar el objeto
XML para cargar documentos XML en una película de Flash e interpretarlos.
El objeto predefinido XMLSocket le permite crear una conexión continua con el
servidor para pasar datos XML para aplicaciones que se ejecutan en tiempo real.
Optimización
Flash 5 lleva a cabo optimizaciones en el código de ActionScript para mejorar
su desempeño y no aumentar el tamaño de archivo. Como resultado de estas
optimizaciones, Flash 5 con frecuencia producirá código de bytes de ActionScript
más pequeño que en Flash 4.
Utilización de la Ayuda de Flash
para acciones
Flash 5 contiene ayuda sensible al contexto para cada acción disponible en el panel
Acciones. Mientras crea scripts, puede obtener información sobre las acciones que
está utilizando.
Para obtener ayuda sobre las acciones:
1 En el panel Acciones, seleccione una acción en la lista de la Caja de
herramientas.
2 Haga clic sobre el botón Ayuda en la parte superior del panel.
En el navegador aparecerá un tema relacionado con la acción.
ActionScript, el lenguaje de creación de scripts de Flash, permite crear películas
con elementos interactivos. La película se puede configurar para que ejecute scripts
que respondan a eventos de usuario como pueden ser hacer clic en el botón del
ratón o presionar una tecla. Por ejemplo, se puede crear un script para indicar a
Flash que cargue una película específica en Flash Player como respuesta al botón
del navegador seleccionado por el usuario.
La filosofía de ActionScript es la de una herramienta que permite crear películas
que se comportan exactamente del modo establecido por el usuario. No es
necesario entender todos los posibles usos de la herramienta para empezar a crear
scripts; si parte de un objetivo claro, podrá empezar a crear scripts que incluyan
acciones sencillas. Puede incorporar nuevos elementos del lenguaje a medida que
aprenda a utilizarlos, para realizar tareas más complejas.
Este capítulo presenta ActionScript como un lenguaje de creación de scripts
orientado a objetos e introduce diferentes términos del mismo. También analiza
un script de ejemplo, de forma que el usuario desarrolle un marco de referencia
global respecto al mismo.
Este capítulo introduce además el panel Acciones, que permite construir scripts
mediante la selección de elementos de ActionScript o introducir texto en la
ventana Script.
1
23
Creación de scripts en ActionScript
Para empezar a escribir scripts sencillos no es necesario tener un conocimiento
profundo de ActionScript. Lo único que se necesita es un objetivo claro; lo demás
es sólo cuestión de seleccionar las acciones adecuadas. La mejor forma de descubrir
lo fácil que es ActionScript es creando un script. En el siguiente ejemplo se
presenta un script que ha sido asignado a un botón para cambiar el estado de
visibilidad de un clip de película.
Para cambiar la visibilidad de un clip de película:
1 Seleccione Ventana > Bibliotecas comunes > Botones y, a continuación,
seleccione Ventana > Bibliotecas comunes > Clips de película. Coloque
un botón y un clip de película en el Escenario.
2 Seleccione la instancia de clip de película en el Escenario, y seleccione
Ventana > Paneles > Propiedades de instancia.
3 Introduzca en el campo Nombre testMC.
4 Seleccione el botón en el Escenario, y elija Ventana > Acciones para abrir el
panel Acciones.
5 En el panel Acciones de objetos, haga clic en la categoría Acciones para abrirla.
6 Haga doble clic en la acción setProperty para agregarla a la lista Acciones.
7 En el menú emergente Propiedad, seleccione _visible (Visibilidad).
8 Especifique testMC como valor del parámetro Destino.
9 Especifique el valor 0 para el parámetro Valor.
El código resultante deberá ser similar al siguiente:
on (release) {
setProperty ("testMC", _visible, false);
}
10
Seleccione Control > Probar película y haga clic en el botón para ver cómo
desaparece el clip de película.
Capítulo 124
ActionScript es un lenguaje de creación de scripts orientado a objetos. Esto
significa que, cuando se dan determinados eventos, las acciones controlan objetos.
En este script, el evento es la acción del usuario de soltar el botón del ratón (lo que
se conoce como "mouse-up"), el objeto es la instancia de clip de película MC y la
acción es setProperty. Cuando el usuario hace clic en el botón que se muestra en
la pantalla, el evento release ejecuta un script que establece la propiedad
_visible del objeto MC al valor false lo cual hace que el objeto se vuelva
invisible.
El panel Acciones puede utilizarse como referencia para la configuración de scripts
sencillos. Para utilizar toda la potencia de ActionScript, es importante comprender
el funcionamiento del lenguaje: los conceptos, elementos y reglas del lenguaje para
organizar la información y crear películas interactivas.
Esta sección explica el flujo de trabajo de ActionScript, los conceptos
fundamentales para la creación de scripts orientados a objetos, los objetos de Flash
y el flujo de ejecución de scripts. También presenta información respecto a la
ubicación de los scripts en las películas de Flash.
Planificación y depuración de scripts
Lo más común cuando se programan scripts para una película completa es que
se trabaje con una gran cantidad y diversidad de scripts. Es importante planear
cuidadosamente qué acciones utilizar en un script, cómo estructurar las
instrucciones de forma efectiva y en qué elementos ubicarlos para asegurar el
mejor desempeño de los mismos, especialmente cuando la complejidad de la
película empieza a ser considerable.
Antes de empezar a programar scripts, es importante establecer un objetivo e
intentar clarificar con exactitud lo que se propone conseguir. Esto es tan
importante (y normalmente consume tanto tiempo) como el desarrollo de los
scripts para el proyecto que se desea realizar. Es recomendable empezar por escribir
las acciones que se desea sucedan en la película, como en el siguiente ejemplo:
• Deseo crear mi propio sitio Web utilizando Flash.
• A las personas que visiten el sitio se les pedirá su nombre, y éste se utilizará en
los mensajes que se generen en todo el sitio Web.
• El sitio contendrá una barra de navegación que puede arrastrarse, y sus botones
se vincularán con cada una de las secciones.
• Cuando se presione un botón, la nueva sección irá apareciendo
progresivamente en el centro del Escenario.
• Una escena dispondrá de un formulario de contacto, en el que se mostrará el
nombre del usuario.
El lenguaje ActionScript25
Cuando tenga una idea clara de lo que desea, podrá construir los objetos
necesarios y escribir los scripts que controlen dichos objetos.
Para lograr que los scripts se comporten del modo deseado se tiene que invertir
una cantidad considerable de tiempo, en ocasiones es necesario pasar por más de
un ciclo de escritura, pruebas y depuración. La mejor forma de abordar un
problema suele ser empezar poco a poco y comprobar el trabajo a medida que se
avanza. Cuando haya conseguido que funcione una parte del script, seleccione
Guardar como, con el fin de guardar una versión del archivo (por ejemplo,
miPelic01.fla) y empiece a escribir la siguiente parte. Este modo de trabajar ayuda
a identificar errores de un modo eficiente y asegura que el código de ActionScript
es fiable antes de proceder a escribir scripts más complejos.
Creación de scripts orientados a objetos
En los scripts orientados a objetos la información se organiza en grupos
denominados clases. Pueden crearse varias instancias de una clase; a éstas se les
denomina objetos, y los objetos pueden emplearse en los scripts. El desarrollador
puede utilizar en sus scripts clases predefinidas de ActionScript y crear las
suyas propias.
Cuando se crea una clase, es preciso definir todas las propiedades (características) y
métodos (comportamientos) de cada objeto que ésta crea, de modo análogo a como
se definen los objetos en el mundo real. Una persona, por ejemplo, tiene ciertas
propiedades como el género, la altura y el color de pelo, así como ciertos métodos
como son hablar, caminar y lanzar. En este ejemplo “persona” es, genéricamente,
una clase y cada persona individual es un objeto, o una instancia de dicha clase.
Los objetos de ActionScript pueden contener datos o pueden representarse
gráficamente en el Escenario como clips de película. Todos los clips de película son
instancias de la clase predefinida MovieClip. Cada instancia de clip de película
contiene todas las propiedades (por ejemplo, _height, _rotation,
_totalframes) y todos los métodos (por ejemplo, gotoAndPlay, loadMovie,
startDrag) de la clase MovieClip.
Para definir una clase, debe crearse una función especial, denominada función
constructora; las clases predefinidas tienen funciones constructoras previamente
definidas. Por ejemplo, si se desea obtener información acerca de un ciclista que
aparece en la película, puede crearse una función constructora, Biker, con las
propiedades time y distance y el método rate, que indique la velocidad a la
que se desplaza el ciclista:
A continuación pueden crearse copias, es decir, instancias, de la clase. El siguiente
código crea instancias del objeto
emma = new Biker(30, 5);
hamish = new Biker(40, 5);
Biker denominadas emma y hamish.
Las instancias también pueden comunicarse entre sí. Para el objeto Biker, podría
crearse un método denominado shove que permita a un ciclista empujar a otro
(la instancia emma podría llamar a su método shove en caso de que hamish se
acercase demasiado). Para pasar información a un método se utilizan parámetros
(también denominados argumentos): por ejemplo, el método shove podría
aceptar los parámetros who y howFar. En este ejemplo emma empuja a hamish
10 píxeles:
emma.shove(hamish, 10);
En la creación de scripts orientados a objetos, las clases pueden recibir propiedades
y métodos unas de otras, de acuerdo a un orden determinado; esta funcionalidad
se denomina herencia. La herencia puede utilizarse para ampliar o redefinir las
propiedades y métodos de una clase. Una clase que hereda propiedades y métodos
de otra clase recibe el nombre de subclase. Una clase que pasa propiedades y
métodos a otra clase recibe el nombre de superclase. Una clase puede ser a la vez
subclase y superclase.
Objeto MovieClip
Las clases predefinidas de ActionScript reciben el nombre de Objetos. Cada objeto
permite acceder a un determinado tipo de información. Por ejemplo, el objeto
Date tiene dos métodos (por ejemplo, getFullYear, getMonth), que permiten
leer la información del reloj del sistema. El objeto Sound tiene métodos (por
ejemplo, setVolume, setPan) que permiten controlar el sonido en una película.
El objeto MovieClip tiene métodos que permiten controlar las instancias de los
clips de película (por ejemplo, play, stop y getURL) a la vez que obtienen y
definen información acerca de sus propiedades (por ejemplo, _alpha,
_framesloaded, _visible).
Los clips de película son los objetos más importantes de las películas de Flash
porque contienen líneas de tiempo que se ejecutan independientemente de las
demás. Por ejemplo, si la línea de tiempo principal sólo tiene un fotograma y en
una de las capas se incluye un clip de película que contiene a su vez10 fotogramas,
el clip de película presentará todo su contenido independientemente de que la
línea principal sólo se extienda un fotograma. Esto permite que cada instancia de
un clip de película se comporte como objeto autónomo con capacidad de
comunicación con los demás.
El lenguaje ActionScript27
Cada instancia de un clip de película tiene un nombre único, de modo que es
posible controlarlas a través de acciones. Por ejemplo, si dispusiésemos de varias
instancias de un clip de película en el Escenario (por ejemplo, leftClip y
rightClip) podríamos asignar una acción para lograr que sólo una se reprodujese
en un momento dado. Para esto, basta asignar una acción que active a la instancia
a través del nombre de la misma. En el siguiente ejemplo, el nombre del clip de
película es leftClip:
leftClip.play();
Al momento de reproducción de una película también se pueden duplicar,
eliminar y arrastrar instancias de uno o varios clips de película utilizando su
nombre de instancia. El siguiente ejemplo duplica la instancia
cartItem para
llenar un carrito de compra con el número de artículos comprados:
onClipEvent(load) {
do {
duplicateMovieClip("cartItem", "cartItem" + i, i);
i = i + 1;
} while (i <= numberItemsPur);
}
Los clips de película poseen propiedades cuyos valores pueden establecerse y
recuperarse en forma dinámica mediante ActionScript. La modificación y lectura
de estas propiedades puede cambiar el aspecto e identidad de un clip de película y
es la clave para darle interactividad. Por ejemplo, el siguiente script utiliza la
acción setProperty para establecer la transparencia (parámetro alfa) de la
instancia navigationBar al valor 10:
setProperty("navigationBar", _alpha, 10);
Para obtener más información referente a otro tipos de objetos, consulte la sección
“Utilización de objetos predefinidos” a pagina 81.
Flujo de los scripts
ActionScript sigue un flujo lógico. Flash ejecuta las sentencias de ActionScript
empezando por la primera y continuando secuencialmente hasta llegar a la última
o a una sentencia que le indique una bifurcación a otro script u otra parte en el
mismo script.
A continuación se presentan algunas acciones que cambian el flujo de
ActionScript hacia una sentencia diferente a la que aparece después de ella:
Capítulo 128
La sentencia if, los bucles do...while, y la acción return.
El lenguaje ActionScript29
Una sentencia if recibe el nombre de sentencia condicional o “bifurcación
lógica”, ya que controla el flujo de un script basándose en la evaluación de una
determinada condición. Por ejemplo, el siguiente código comprueba si el valor
de la variable number es menor o igual que 10. Si la comprobación devuelve true
(por ejemplo, el valor de number es 5), se establece la variable alert y muestra su
valor en un campo de entrada de texto, como el siguiente:
if (number <= 10) {
alert = "The number is less than or equal to 10";
}
También se pueden incluir sentencias else para crear sentencias condicionales
más complejas. En el ejemplo siguiente, si la condición devuelve true (por
ejemplo, el valor de number es 3), se ejecuta la sentencia encerrada entre el primer
conjunto de llaves y la variable alert se establece en la segunda línea. Si la
condición devuelve false (por ejemplo, el valor de number es 30), se ignora el
primer bloque de código y se ejecuta la sentencia encerrada entre llaves detrás de
la sentencia else, como a continuación:
if (number <= 10) {
alert = "The number is less than or equal to 10";
} else {
alert = "The number is greater than 10";
}
Si desea obtener más información, consulte “Utilización de las sentencias if” a
pagina 73.
Los bucles repiten una acción un determinado número de veces, o hasta que
se cumpla cierta condición. En el siguiente ejemplo se duplica cinco veces un
clip de película:
i = 0;
do {
duplicateMovieClip ("myMovieClip", "newMovieClip" + i, i);
newName = eval("newMovieClip" + i);
setProperty(newName, _x, getProperty("myMovieClip", _x) + (i *
5));
i = i + 1;
} while (i <= 5);
Para obtener información detallada, consulte “Repetición de una acción” a
pagina 74.
Capítulo 130
Loading...
+ 415 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.