Está en la página 1de 38

Actionscript

ActionScript

para Flash MX

Sham Bhangal, Ben Renow-Clarke Anaya Multimedia 2003


Flash

MX 2004 ActionScript

Derek franklin, JobeMakar Anaya Multimedia. 2003.

ndice

Acciones. Control de la lnea de tiempo. Manejo de los clips de pelcula en el escenario. Interactividad. Tipos de Datos. Variables Objetos.

Acciones

Las acciones forman el bloque principal del ActionScript. Son instrucciones que le damos a nuestra pelcula. Las acciones van siempre asociadas a algo, normalmente es un fotograma clave o una instancia de un objeto en el escenario. Al cambiar de objeto cambiamos automticamente de script.

Acciones

Existen muchos tipos de acciones como se muestra a la derecha. Normalmente se especifican en una capa aparte. Las ms sencillas son las de control de la lnea de tiempo. No diferencia entre maysculas y minsculas.

Control de la lnea de tiempo


gotoandPlay gotoAndStop play nextFrame nextScene prevFrame prevScene stop stopAllSounds

Manejo de la lnea de tiempo raz

Ejemplo circle goto

Manejo de los clips de pelcula en el escenario

Sabemos que una accin es una orden que le damos a la pelcula flash para que haga algo, asociado a un fotograma clave en la lnea de tiempo. Qu ocurre si en el escenario hay un clip de pelcula con su propia lnea de tiempos. La solucin no es abrir el clip e introducir el script, sino desde la lnea principal nombrar ese clip y asignarle la acciones, as evitaremos tener cientos de trozos de clip desperdigados por toda la aplicacin. Dos pasos para resolver el problema:

Manejo de los clips de pelcula


1.

Darle un nombre al clip en el escenario. Se debe crear una instancia del clip sobre el escenario y darle un nombre. Es aconsejable para que lo podamos identificar nosotros (sufijos) y el editor de acciones y as sugerirnos cosas el programa.
_mc movie clip _btn button _sound sound _video vdeo _str string _array array

_txt text field _fmt text format _date fecha _color color _xml XML _xmlsocket XMLsocket

Manejo de los clips de pelcula


2. Utilizar la sintaxis de punto para

comunicarnos con ella. miClip_mc.stop();

Ejemplo Therace.fla

Sintaxis de punto

En ActionScript, se utiliza un punto (.) para indicar las propiedades o mtodos relacionados con un objeto o un clip de pelcula. Tambin se utiliza para identificar la ruta de destino a un clip de pelcula o a una variable. Una expresin de sintaxis de punto comienza con el nombre del objeto o del clip de pelcula seguido por un punto y finaliza con la propiedad, el mtodo o la variable que desee especificar. Por ejemplo, la propiedad de clip de pelcula _x indica la posicin del clip de pelcula en el eje x en el Escenario. La expresin ballMC._x se refiere a la propiedad _x de la instancia del clip de pelcula ballMC. Otro ejemplo, submit es una variable establecida en el clip de pelcula form que se encuentra anidado dentro del clip de pelcula shoppingCart. La expresin shoppingCart.form.submit = true establece la variable submit de la instancia form en true. La expresin de un mtodo de un objeto o de un clip de pelcula sigue el mismo esquema. Por ejemplo, el mtodo play de la instancia ballMC mueve la cabeza lectora en la Lnea de tiempo de ballMC, como en la siguiente sentencia: ballMC.play();

_root _parent

La sintaxis de punto tambin utiliza dos alias especiales, _root y _parent.

El alias _root se refiere a la Lnea de tiempo principal. Puede utilizar el alias _root para crear una ruta de destino absoluta. Por ejemplo, la siguiente sentencia llama a la funcin buildGameBoard en el clip de pelcula functions en la Lnea de tiempo principal: _root.functions.buildGameBoard(); Puede utilizar el alias _parent para referirse a un clip de pelcula en el que est anidado el clip de pelcula actual. Puede utilizar _parent para crear una ruta de destino relativa. Por ejemplo, si el clip de pelcula dog se encuentra anidado dentro del clip de pelcula animal, la siguiente sentencia en la instancia dog dice a animal que se detenga: _parent.stop();

Trabajo con clips de pelcula

Un clip de pelcula es una mini pelcula de Flash: tiene su propia Lnea de tiempo y sus propias propiedades. Un smbolo de clip de pelcula de la Biblioteca puede utilizarse varias veces en una pelcula de Flash, cada utilizacin recibe el nombre de instancia de clip de pelcula. Los clips de pelcula pueden anidarse unos dentro de otros. Para distinguir unas instancias de otras, puede asignar a cada utilizacin de un clip de pelcula un nombre de instancia.

LoadMovie

Las pelculas que se cargan en Flash Player mediante loadMovie tambin son mini pelculas de Flash. Cada clip de pelcula, la pelcula cargada y la Lnea de tiempo principal de una pelcula de Flash son objetos con propiedades y mtodos que se pueden manejar a travs de ActionScript para crear una animacin no lineal compleja y para programar poderosas interacciones. Se controlan clips de pelcula utilizando acciones y mtodos del objeto MovieClip. Las acciones y los mtodos pueden anexarse a fotogramas o a botones en un clip de pelcula (acciones de fotograma y de botn) o a una instancia de clip de pelcula especfica (acciones de clip). Las acciones de un clip de pelcula pueden controlar cualquier Lnea de tiempo de una pelcula. Para controlar una Lnea de tiempo debe dirigirse a ella utilizando una ruta de destino. Una ruta de destino indica la ubicacin de la Lnea de tiempo en la pelcula.

Lneas de tiempo mltiples

Todas las pelculas de Flash tienen una Lnea de tiempo principal situada en el nivel 0 en Flash Player. Puede utilizar la accin loadMovie para cargar otras pelculas de Flash (archivos SWF) en Flash Player en cualquier nivel superior al nivel 0 (por ejemplo, nivel 1, nivel 2, nivel 15). Cada pelcula cargada en un nivel de Flash Player tiene su propia Lnea de tiempo. Las pelculas de Flash en cualquier nivel pueden tener instancias de clips de pelcula en sus Lneas de tiempo. Cada instancia de clip de pelcula tambin tiene una Lnea de tiempo que puede contener otros clips de pelcula que tambin tienen Lneas de tiempo. Las Lneas de tiempo de los clips de pelcula y de los niveles de Flash Player estn organizadas de manera jerrquica para poder organizar y controlar fcilmente los objetos de su pelcula.

La jerarqua de niveles y de clips de pelcula en Flash Player.

Estructura jerrquica

Las Lneas de tiempo en una pelcula de Flash son objetos y todos tienen caractersticas (propiedades) y capacidades (mtodos) del objeto predefinido MovieClip. Las Lneas de tiempo tienen relaciones especficas unas con otras dependiendo de su ubicacin en la lista de visualizacin. Las Lneas de tiempo que se encuentran anidadas dentro de otras Lneas de tiempo se ven afectadas por los cambios realizados en la Lnea de tiempo en la que residen. Por ejemplo, si portland es un elemento secundario de oregon y se cambia la propiedad _xscale de oregon, portland tambin cambiar de escala.

Rutas de destino absolutas y relativas

Una ruta de destino es la direccin de la Lnea de tiempo cuyo destino desea especificar. La lista de visualizacin de las Lneas de tiempo en Flash es similar a la jerarqua de archivos y carpetas de un servidor Web. La ruta absoluta de una instancia siempre es la misma, sin tener en cuenta qu Lnea de tiempo llama a la accin; por ejemplo, la ruta absoluta a la instancia california es siempre level0.westCoast.california. Una ruta relativa es diferente cuando se llama desde diferentes ubicaciones, por ejemplo, la ruta relativa hasta california desde sanfrancisco es _parent, pero desde portland, es_parent._parent.california.

Propiedades del clip de pelcula

Las propiedades _x, _y, _rotation, _xscale, _yscale, _height, _width, _alpha y _visible se ven afectadas por las transformaciones del elemento principal del clip de pelcula y modifican el clip de pelcula y cualquiera de los elementos secundarios del clip. Las propiedades _focusrect, _highquality, _quality, y _soundbuftime son globales, solamente pertenecen al nivel 0 de la Lnea de tiempo. Todas las dems propiedades pertenecen a cada clip de pelcula o nivel cargado.

Interactividad

Consta de dos procesos:


Necesitamos un evento (event). Activar acciones cuando algo ocurra en la pelcula (event-handler).

Eventos

Existen dos tipos de eventos, los externos y los internos.

Los primeros se producen al utilizar el ratn o el teclado.

red_btn.onPress

Los segundos son menos intuitivos al ocurrir dentro de flash como cargar un clip o moverse al siguiente fotograma.

onEnterFrame

Eventos y Callbacks
Botones movimientos de ratn, pulsaciones de teclado, etc..
forward_btn.onPress = function() { gotoAndStop(_currentframe+1); };
onEnterFrame= function () { gotoAndStop(_currentframe+5); };

Tambin existen dos controladores de eventos, on() y onClipEvent(), que pueden asignarse directamente a botones y clips de pelcula. Ejemplo Therace2.fla

Eventos de ratn
.onDragOut .onDragOver .onKeyUp .onKillFocus Se invoca cuando se presiona el botn del ratn sobre el botn y, a continuacin, el puntero se desplaza fuera del botn. Se invoca cuando el usuario presiona y arrastra el botn del ratn fuera del botn y, a continuacin, sobre ste. Se invoca cuando se suelta una tecla. Se invoca cuando se deja de seleccionar un botn.

.onPress
.onRelease .onReleaseOutside .onRollOut

Se invoca cuando se presiona el ratn mientras el puntero est sobre un botn.


Se invoca cuando se suelta el ratn mientras el puntero est sobre un botn. Se invoca cuando se suelta el ratn mientras el puntero est fuera del botn despus de presionar el botn mientras el puntero est dentro del botn. Se invoca cuando el puntero se desplaza fuera del rea de un botn.

.onRollOver
.onSetFocus keyPress (key) on(keyPress(left ))

Se invoca cuando el puntero del ratn se desplaza sobre un botn.


Se invoca cuando un botn se selecciona en el momento de la entrada y se suelta una tecla. Se presiona la tecla especificada. Para la parte "key" del parmetro, especifique un cdigo de tecla o una constante de tecla. Para una lista de los cdigos de tecla asociados con las teclas de un teclado estndar,

Eventos de MovieClip
.onData .onEnterFrame Se invoca cuando todos los datos se han cargado en un clip de pelcula. Se invoca de forma continua a la velocidad de los fotogramas del archivo SWF. Las acciones asociadas con el evento de clip enterFrame se procesan antes que cualquiera de las acciones de fotogramas asociadas a los fotogramas afectados. Se invoca cuando se presiona una tecla. Utilice los mtodos Key.getCode() y Key.getAscii() para recuperar informacin sobre la ltima tecla que se ha presionado. Se invoca cuando se suelta una tecla. Se invoca cuando se presiona el botn izquierdo del ratn. Se invoca cada vez que se mueve el ratn. Se invoca cuando se suelta el botn izquierdo del ratn. Se invoca en el primer fotograma despus de eliminar el clip de pelcula de la lnea de tiempo. Las acciones asociadas con el evento de clip de pelcula Unload se procesan antes de que se asocien acciones al fotograma afectado. Se invoca cuando se crea una instancia del clip de pelcula y aparece en la lnea de tiempo.

.onKeyDown

.onKeyUp .onMouseDown .onMouseMove .onMouseUp .onUnload

.onLoad

Tipos de datos

Un tipo de datos describe la clase de informacin que puede contener una variable o un elemento de ActionScript. En Flash se distinguen dos tipos de datos: primitivos y de referencia. Los tipos de datos primitivos (String, Number y Boolean) tienen un valor constante y, por consiguiente, pueden contener el valor real del elemento que representan. Los tipos de datos de referencia (MovieClip y Object) tienen valores que pueden cambiar y, por consiguiente, contienen referencias al valor real del elemento.

Tipos de datos

Hay dos tipos de datos especiales: null y undefined. En Flash, los objetos incorporados que no sean un tipo de datos primitivo o un tipo de datos de clip de pelcula, como Array o Math, son del tipo de datos Object. Cuando se depuran scripts, a veces es necesario determinar el tipo de datos de una expresin o variable para entender por qu se comporta de cierta manera. Esto se puede hacer con el operador typeof. Ejemplo typeof.fla Puede convertir un tipo de datos en otro mediante una de las funciones de conversin siguientes: Array(), Boolean(), Number(), Object(), String().

Variables

Flash es un untyped language donde no es necesario especificar el tipo de contenido de sus variables. Incluso puede una misma variable contener diferentes tipos de datos en instantes diferentes. valor = 3; Tipos de valores que pueden contener:

Cadenas alfanumricas (string) Nmeros Booleanas

mbito y declaracin de variables

El mbito de una variable se refiere al rea en la que se conoce la variable y se puede hacer referencia a ella. ActionScript contiene tres tipos de mbito de variable:

Las Variables locales estn disponibles en el cuerpo de la funcin en la que se han declarado (incluidas entre llaves). Las Variables de lnea de tiempo estn disponibles para cualquier script de dicha lnea de tiempo. Las funciones y las Variables globales son visibles para todas las lneas de tiempo y todos los mbitos del documento.

Variables locales

Para declarar una variable local, se utiliza la sentencia var en el cuerpo de una funcin. El mbito de una variable local es el bloque y caduca al final del bloque. Una variable local que no est declarada dentro de un bloque caduca al final de su script. En el siguiente ejemplo, i se utiliza como variable local; solamente existe dentro de la funcin makeDays():

function makeDays() {
var i; for( i = 0; i < monthArray[month]; i++ ) {
_root.Days.attachMovie( "DayDisplay", i, i + 2000 ); _root.Days[i].num = i + 1; _root.Days[i]._x = column * _root.Days[i]._width; _root.Days[i]._y = row * _root.Days[i]._height; column = column + 1; if (column == 7 ) { column = 0; row = row + 1; }

Variables de lnea de tiempo

Las variables de lnea de tiempo estn disponibles para cualquier script de dicha lnea de tiempo. Para declarar variables de lnea de tiempo, debe inicializarlas en cualquier fotograma de la lnea de tiempo. Asegrese de inicializar la variable antes de intentar acceder a la misma en un script. Por ejemplo, si coloca el cdigo var x = 10; en el fotograma 20, un script adjunto a un fotograma anterior al fotograma 20 no podr acceder a dicha variable.

Variables globales

Las funciones y las variables globales son visibles para todas las lneas de tiempo y todos los mbitos del documento. Para crear una variable de mbito global, escriba el identificador _global delante del nombre de la variable y no utilice la sintaxis var =. Por ejemplo, el cdigo siguiente crea la variable global myName:
var _global.myName = "George"; // error de sintaxis _global.myName = "George"; Sin embargo, si inicializa una variable local con el mismo nombre que la variable global, no tendr acceso a la variable global mientras se encuentra en el mbito de la variable local: _global.counter = 100; counter++; trace(counter); // muestra 101 function count(){ for( var counter = 0; counter <= 10 ; counter++ ) { trace(counter); // muestra de 0 a 10 } } count(); counter++; trace(counter); // muestra 102

Arrays
miarray = new Array(); miarray[0]=primer; mypets= new Array(perro,gato,canario); myObject = { name:'Joe', age:25, city:'San Francisco' };

Clase Array
Propiedad Array.length
Mtodo Array.concat() Array.join() Array.pop() Array.push() Array.reverse() Array.shift() Array.slice() Array.sort() Array.sortOn() Array.splice() Array.toString() Array.unshift()

Descripcin Nmero entero que no es de base cero y que especifica el nmero de elementos de la matriz.
Descripcin Concatena los parmetros y los devuelve como una matriz nueva. Une todos los elementos de una matriz en una cadena. Elimina el ltimo elemento de una matriz y devuelve su valor. Agrega uno o ms elementos al final de una matriz y devuelve la nueva longitud de la matriz. Invierte la direccin de una matriz. Elimina el primer elemento de una matriz y devuelve su valor. Extrae una seccin de una matriz y la devuelve como una nueva matriz. Ordena una matriz. Ordena una matriz segn un campo de la matriz. Agrega y elimina elementos de una matriz. Devuelve un valor de cadena que representa los elementos del objeto Array. Agrega uno o ms elementos al principio de una matriz y devuelve la nueva longitud de la matriz.

Estructuras de control de ejecucin

Estructuras Selectivas: if, if else, switch;


if ((password == null) || (email == null)){
gotoAndStop("reject");

} else { gotoAndPlay("startMovie"); }

Estructuras repetitivas: for, while, do...while, y for...in


i = 4; while (i > 0) { myMC.duplicateMovieClip("newMC" + i, i ); i --; }

la sentencia for...in.

El siguiente ejemplo utiliza trace para imprimir sus resultados en la ventana Salida:
myObject = { name:'Joe', age:25, city:'San Francisco' }; for (propertyName in myObject) { trace("myObject has the property: " + propertyName + ", with the value: " + myObject[propertyName]); }

Este ejemplo produce los siguientes resultados en la ventana Salida:


myObject has the property: name, with the value: Joe myObject has the property: age, with the value: 25 myObject has the property: city, with the value: San Francisco

Definicin de una funcin

Las funciones, al igual que las variables, estn vinculadas al clip de pelcula que las define. Cuando se vuelve a definir una funcin, la nueva definicin sustituye a la definicin anterior. Para definir una funcin, utilice la accin function seguida del nombre de la funcin, los argumentos que va a pasar a la funcin y las sentencias de ActionScript que indican lo que hace la accin. A continuacin se muestra una funcin llamada Circle con el argumento radius:
function Circle(radius) { this.radius = radius; this.area = Math.PI * radius * radius; }

Nota: La palabra clave this, utilizada en el cuerpo de una funcin, hace referencia al clip de pelcula al que pertenece la funcin.

Expresin literal de funcin

Tambin puede definir la funcin creando una expresin literal de funcin. Es una funcin sin nombre que se declara en una expresin en lugar de en una sentencia. Puede utilizar la expresin literal de una funcin para definir una funcin, para devolver su valor y asignarlo a una variable en una expresin, como se muestra a continuacin:
area = (function () {return Math.PI * radius *radius;})(5);

Utilizacin de objetos predefinidos

Puede utilizar los objetos predefinidos de Flash para acceder a ciertos tipos de informacin. La mayora de los objetos predefinidos tienen mtodos (funciones asignadas a un objeto) que puede llamar para devolver un valor o para realizar una accin. Por ejemplo, el objeto Date devuelve informacin del reloj del sistema y el objeto Sound le permite controlar los elementos de sonido de su pelcula. Algunos objetos predefinidos tienen propiedades cuyos valores pueden ser ledos por la misma. Por ejemplo, el objeto Key tiene valores constantes que representan teclas del teclado. Cada objeto tiene sus propias caractersticas y capacidades que pueden utilizarse en su pelcula. A continuacin se muestran los objetos predefinidos de Flash: Array, Boolean, Color, Date, Key, Math, MovieClip, Number, Object, Selection, Sound, String, XML, XMLSocket

Objetos predefinidos

El objeto Math dispone de un complemento completo de constantes y funciones matemticas integradas como E (constante de Euler), cos (Coseno), y atan (arco tangente). El objeto Date le permite obtener informacin sobre la fecha y la hora del sistema en el que se est ejecutando Flash Player. El objeto Sound le permite agregar sonidos a una pelcula y controlar los sonidos en una pelcula a medida que se reproduce. Por ejemplo, puede ajustar el volumen (setVolume), o el balance (setPan). El objeto Mouse le permite ocultar el cursor estndar para que pueda utilizar un cursor personalizado. El objeto MovieClip le permite controlar clips de pelcula sin utilizar una accin envolvente como tellTarget . Puede llamar a un mtodo como play, loadMovie, o duplicateMovieClip desde un nombre de instancia utilizando la sintaxis de punto (por ejemplo, myMovieClip.play()).

También podría gustarte