ActionScript

Permite agregar interactividad a una película cuando se presionan los botones del ratón y las teclas.

El panel Acciones se utiliza en 2 modos:

a) Modo Normal.- Los scripts se crean eligiendo las opciones de los menús y las listas. Con el.
b) Modo Experto.-se introduce texto directamente en el panel Script. Una vez que disponga de un script

y permite asignar código a los fotogramas, a los eventos de botones y eventos de los clip de película, también puede crear funciones que puede asignar a los componentes o poderlas invocar desde cualquier lugar dentro del código que estemos escribiendo.

Para ver el panel Acciones en modo Experto:

1

Seleccione Ventana > Acciones.

Haga clic en la flecha situada en la esquina superior derecha del panel Acciones para mostrar el menú emergente y elija Modo Experto.

 

Para revisar la sintaxis, utilice uno de los procedimientos siguientes:

Haga clic en el botón Revisar sintaxis.

Seleccione Revisar sintaxis en el menú emergente del panel Acciones (situado en la parte superior derecha del panel). Los errores de sintaxis se muestran en la ventana Salida.

 

Para establecer las opciones del estilo de formato de Flash, utilice uno de los procedimientos siguientes:

1

Elija Opciones de Formato automático en el menú emergente del panel Acciones.

 

Aparece el cuadro de diálogo Opciones de Formato automático.

2

Seleccione cualquiera de las casillas de verificación. Para ver el efecto de cada selección, examine el panel de previsualización.

 

Utilización del panel Referencia

Puede utilizar el panel Referencia para ver descripciones detalladas de las acciones que se muestran en la caja de herramientas Acciones. El panel también muestra un código de ejemplo, que puede copiarse y pegarse en el panel Script del panel Acciones. También puede ajustar el tamaño de fuente e imprimir el contenido del panel Referencia.

 

Utilización de los consejos de códigos

Cuando se trabaja en el panel Acciones, Flash puede detectar la acción que se está introduciendo y puede mostrar un consejo sobre códigos (información sobre herramientas que contiene la sintaxis completa de esa acción o un menú emergente que muestra los posibles nombres de métodos o de propiedades). En modo Experto, aparecen consejos sobre código para parámetros, propiedades y eventos cuando se introducen ciertos caracteres en el panel Script. En modo Normal, al seleccionar el cuadro Expresión, aparecen consejos sobre códigos para parámetros y propiedades (pero no para eventos) en los cuadros de texto de parámetros.

 


Observación importante

Muchos objetos ActionScript obligan a crear una nueva instancia del objeto a fin de utilizar sus métodos y propiedades.

Por ejemplo, en el código

myMovieClip.gotoAndPlay(3);

El método gotoAndPlay indica a la instancia myMovieClip que vaya a un fotograma específico y que se empiece a reproducir el clip de película. El panel Acciones no sabe que la clase de objeto de la instancia myMovieClip es MovieClip y, por lo tanto, no sabe los consejos sobre código que se deben mostrar.

Si desea que el panel Acciones muestre consejos sobre códigos de instancias de objeto, debe agregar un sufijo de clase especial a cada nombre de instancia. Por ejemplo, para ver consejos sobre códigos de la clase MovieClip, debe incluir en el nombre de todos los objetos MovieClip el sufijo _mc, como en los ejemplos siguientes:

Circle_mc.gotoAndPlay(1);
Sqaure_mc.stop();
Block_mc.duplicateMovieClip("NewBlock_mc", 100);

En la tabla siguiente se muestran los sufijos y sus clases de objeto correspondientes:

Sufijo

Clase de objeto

_mc

MovieClip

_array

Array

_str

String

_btn

Button

_txt

TextField

_fmt

TextFormat

_date

Date

_sound

Sound

_xml

XML

_xmlsocket

XMLSocket

_color

Color

_camera

Camera

_mic

Microphone

_stream

NetStream

_connection

NetConnection

_so

SharedObject

_video

Video

También puede utilizar comentarios de ActionScript para especificar una clase de objeto para los consejos sobre códigos. En el ejemplo siguiente se indica a ActionScript que la clase de la instancia theObject es Object y así sucesivamente. Si introdujera el código mc después de estos comentarios, el consejo sobre código mostraría la lista de métodos y propiedades de MovieClip; si introdujera el código theArray, el consejo sobre códigos mostraría una lista de métodos y propiedades de Array.

// Object theObject;
// Array theArray;
// MovieClip mc;

Asignación de acciones a fotogramas

Para que una película lleve a cabo una acción cuando la cabeza lectora llegue a un fotograma de la línea de tiempo, debe asignar una acción al fotograma. Por ejemplo, para crear un bucle en la línea de tiempo entre los fotogramas 20 y 10, debe agregar una acción al fotograma 20 que envíe la cabeza lectora al fotograma 10, como se muestra a continuación:

gotoAndPlay (10);

Algunas acciones se asignan normalmente al primer fotograma de una película:

por ejemplo, acciones que definen funciones y establecen variables que crean el estado inicial de la película.

Es recomendable colocar todas las acciones de fotograma en una capa denominada Acciones; de ese modo, siempre podrá encontrar las acciones en la línea de tiempo. Después de haber asignado una acción, pruebe la película para comprobar si funciona

 
Los fotogramas con acciones se indican con una a pequeña en la línea de tiempo.


 
Para probar una acción de fotograma:
Seleccione Control > Probar película.

Asignación de acciones a un botón

Para que una película lleve a cabo una acción cuando se hace clic en un botón o se sitúa el cursor sobre él, debe asignar una acción a dicho botón. Es necesario asignar acciones a una instancia del botón; las demás instancias del símbolo no se ven afectadas.
Cuando se asigna una acción a un botón, hay que anidarla dentro de un controlador on y especificar los eventos de ratón o teclado que desencadenarán la acción.
También puede utilizar eventos del objeto Button de ActionScript para ejecutar scripts cuando se produce un evento de botón.

Para probar una acción de botón:
Seleccione Control > Probar película.


Asignación de acciones a un clip de película

Al asignar una acción a un clip de película, puede hacer que una película realice una acción cuando el clip de película se carga o recibe datos. Debe asignar acciones a una instancia del clip de película; las demás instancias del símbolo no se ven afectadas.
Cuando asigna una acción a un clip de película, debe anidarla dentro de un controlador onClipEvent y especificar el evento de clip que desencadena la acción.
Para ejecutar scripts también puede utilizar eventos del objeto MovieClip y del objeto Button de ActionScript.

Para probar una acción de clip de película:
Seleccione Control > Probar película.

 
Introducción al lenguaje ActionScript

ActionScript permite crear una película que se desarrolle exactamente de la forma que se desee.

ActionScript tiene sus propias reglas sintácticas, palabras clave, proporciona operadores y permite utilizar variables para almacenar y recuperar información. ActionScript incluye funciones y objetos incorporados y permite crear los suyos propios.



Creación de scripts en ActionScript

Se recomienda empezar por escribir las acciones que se desea que sucedan en la película, como en el siguiente ejemplo:

Deseo crear mi propio sitio Web mediante Flash.

A las personas que visiten el sitio se les solicitará su nombre, que 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 botones que establecerán vínculos a cada una de las secciones.

Cuando se presione un botón de desplazamiento, 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.

Cuando haya determinado lo que desea, puede utilizar el código ActionScript que necesite para realizar las tareas.

Para lograr que los scripts se comporten del modo deseado se tiene que invertir una cantidad considerable de tiempo, ya que en ocasiones es necesario pasar más de una vez por el ciclo de escritura, pruebas y depuración.

Creación de scripts orientados a objetos

La información se organiza en grupos denominados clases. Puede crear varias instancias de una clase, denominadas objetos, para utilizarlas en los scripts. Puede crear sus propias clases y utilizar las clases incorporadas de ActionScript. Estas últimas se encuentran en la carpeta Objetos del panel Acciones.

Al crear una clase, es preciso definir todas las propiedades (características) y métodos (comportamientos) de cada objeto que ésta crea, igual como se definen los objetos en el mundo real. Por ejemplo, una persona tiene determinadas propiedades, como el sexo, la altura y el color de pelo, y determinados métodos, como hablar, caminar y lanzar. En este ejemplo, "persona" sería una clase, y cada persona sería un objeto o una instancia de dicha clase.

Los objetos en ActionScript pueden ser meros contenedores de datos, o estar representados gráficamente en el escenario como clips de película, botones o campos de texto.

Todos los clips de película son instancias de la clase incorporada MovieClip, y todos los botones son instancias de la clase incorporada Button. 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 crear una función especial denominada función constructora (constructor). Las clases incorporadas tienen funciones constructoras incorporadas. Por ejemplo, si se desea obtener información acerca de un ciclista que aparece en la película, puede crearse una función constructora, Ciclista, con las propiedades time y distance y el método getSpeed, que indique la velocidad a la que se desplaza el ciclista:

function Ciclista(t, d) {
      this.time = t;
      this.distance = d;
      this.getSpeed = function() {return this.time / this.distance;};    
}

En este ejemplo, se crea una función que necesita dos elementos de información, o parámetros, para realizar su tarea: t y d. Al llamar a la función para crear nuevas instancias del objeto, debe pasar los parámetros a dicha función. El código siguiente crea instancias del objeto Ciclista denominadas emma y hamish.

emma = new Ciclista(30, 5);
hamish = new Ciclista(40, 5);

En la creación de scripts orientados a objetos, las clases pueden recibir propiedades y métodos de ellas mismas, de acuerdo a un orden determinado; esta función 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

En el panel Acciones, las clases incorporadas de ActionScript se denominan objetos. Un objeto es como una instancia de clase que permite acceder a un tipo determinado de información. Un objeto Date, por ejemplo, tiene métodos que permiten leer información del reloj del sistema (por ejemplo, getFullYear, getMonth). Un objeto Sound tiene métodos que permiten controlar un sonido de una película (por ejemplo, setVolume, setPan). Los objetos MovieClip disponen de métodos para controlar las instancias de clips de película (por ejemplo, play, stop y getURL) y para obtener y definir sus propiedades (por ejemplo, _alpha, _framesloaded, _visible).

Los clips de película son los objetos más importantes de una película Flash, puesto que son minipelículas Flash y contienen líneas de tiempo que se ejecutan en forma independiente. Por ejemplo, si la línea de tiempo principal sólo tiene un fotograma, y un clip de película de dicho fotograma tiene diez fotogramas, cuando se reproduzca la película principal se reproducirán todos los fotogramas del clip de película. 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.

Cada instancia de un clip de película tiene un nombre exclusivo, de modo que es posible controlarlas a través de acciones. Por ejemplo, puede tener varias instancias de una etapa (por ejemplo, leftClip y rightClip) y desear que sólo se reproduzca una a la vez. Para poder asignar una acción que le indica a una instancia determinada que debe reproducirse, debe utilizar su nombre. En el siguiente ejemplo, el nombre del clip de película es leftClip:

leftClip.play();

Durante la reproducción de una película también se pueden duplicar, eliminar y arrastrar instancias de uno o varios clips de película mediante su nombre de instancia. 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 crear la interacción. Por ejemplo, el siguiente script utiliza la acción setProperty para establecer la transparencia (parámetro alfa) de la instancia navigationBar en 10:

setProperty("navigationBar", _alpha, 10);

Los botones y los campos de texto de una película Flash también son objetos que pueden manipularse con ActionScript.

 

Flujo de los scripts

Flash ejecuta las sentencias de ActionScript empezando por la primera y continuando secuencialmente hasta llegar a la última o a una sentencia que indique una bifurcación a otro script u otra parte del mismo script.

Algunas de las acciones que envían a ActionScript a un punto que no es la sentencia siguiente son las sentencias if, los bucles do..while y la acción return.



Gráfico de flujo de la acción
if..else


Gráfico de flujo de la acción do..while

 
 
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. El código siguiente, por ejemplo, comprueba si el valor de la variable number es menor o igual que 10. Si el valor de la comprobación es true (por ejemplo, el valor de mynumber es 5), se establece la variable alert y aparece su valor, como se muestra a continuación:

if (myNumber <= 10) {
    alert = "El número es menor o igual que 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 pasa por alto el primer bloque de código y se ejecuta la sentencia encerrada entre llaves detrás de la sentencia else, como se muestra a continuación:

 

if (number <= 10) {
    alert = "El número es menor o igual que 10";
} else {
    alert = "El número es mayor que 10";
}
 

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); 

 

Control de la ejecución de ActionScript

Los scripts asociados a un fotograma se ejecutan cuando la cabeza lectora entra en el fotograma en cuestión. No obstante, es posible que los scripts que se asocian al primer fotograma de una película se comporten de forma distinta de los que se asocian a los fotogramas subsiguientes, porque el primer fotograma de una película se genera de forma gradual (es decir, los objetos se representan en el escenario a medida que se descargan en Flash Player), y esto puede afectar a las acciones que se ejecutan. Todos los fotogramas que aparecen después del primer fotograma se generan de una vez cuando todos los objetos del fotograma están disponibles.

Los scripts asociados a los clips de película o a los botones se ejecutan cuando se produce un evento. Un evento representa algún tipo de actividad en la película, como el movimiento del ratón, la pulsación de una tecla o la carga de un clip de película. Puede utilizar ActionScript para saber cuándo se producen dichos eventos y ejecutar scripts determinados en función del evento.

Las acciones asociadas a un botón o a un clip de película están encerradas en acciones especiales denominadas controladores. Las acciones onClipEvent y on reciben el nombre de controladoras porque "controlan" o administran eventos. Puede especificar uno o más eventos para cada controlador. Las acciones de botón y de clip de película se ejecutan cuando se produce el evento especificado por el controlador. Es posible asociar más de un controlador a un objeto para que se ejecuten acciones diferentes como respuesta a eventos diferentes.

La acción onClipEvent controla los eventos de los clips de película, y la acción on controla los eventos de los botones. También puede utilizar la acción on en los clips de película para crear un botón Clip de película, un clip de película que recibe eventos de botón.

Los eventos de los clips de película y los eventos de botón también pueden controlarse mediante los métodos de los objetos MovieClip y Button. Debe definir una opción y asignarla al método de controlador de eventos; la función se ejecuta cuando se produce el evento. Los métodos de evento también pueden utilizarse para controlar los eventos de los clips de película creados de forma dinámica. Los eventos de método también son útiles para controlar todos los eventos de una película en un script: no es necesario asociar el script al objeto cuyo evento se está controlando.

Por ejemplo, si tiene un botón en el escenario y utiliza el panel Acciones para agregar una acción trace, aparece este código:

on (release) {
      trace("Ha hecho clic aquí");
}
 

Si lo desea, puede utilizar un método para crear el mismo efecto, como se muestra a continuación:

 

myMovieClip.onRelease = function() {
      trace("Ha hecho clic aquí");
}
 

En la tabla siguiente se indican los controladores de eventos de botón y los métodos correspondientes:

Acciones de controlador de eventos

Métodos de controlador de eventos

on (press)

onPress

on (release)

onRelease

on (releaseOutside)

onReleaseOutside

on (rollOver)

onRollOver

on (rollOut)

onRollOut

on (dragOver)

onDragOver

on (dragOut)

onDragOut

on (keyPress"...")

onKeyDown, onKeyUp

 

En la tabla siguiente se enumeran los métodos y los controladores de eventos de clips de película:

Acciones de controlador de eventos

Métodos de controlador de eventos

onClipEvent (load)

onLoad

onClipEvent (unload)

onUnload

onClipEvent (enterFrame)

onEnterFrame

onClipEvent (mouseDown)

onMouseDown

onClipEvent (mouseUp)

onMouseUp

onClipEvent (mouseMove)

onMouseMove

onClipEvent (keyDown)

onKeyDown

onClipEvent (keyUp)

onKeyUp

onClipEvent (data)

onData

 

ActionScript también permite controlar eventos para los campos de texto y los objetos de ActionScript.

 

Terminología de ActionScript

Al igual que cualquier lenguaje de creación de scripts, ActionScript utiliza su propia terminología. A continuación se presenta una lista de términos importantes de ActionScript.

Acción: sentencia que indica a una película que debe llevar a cabo alguna acción durante su reproducción. Por ejemplo, gotoAndStop envía la cabeza lectora a un fotograma o etiqueta determinados. En este manual, los términos acción y sentencia pueden intercambiarse.

Booleano: un valor booleano es un valor verdadero (true) o falso (false).

Clase: tipo de datos que puede emplearse para definir un nuevo tipo de objeto. Para definir una clase, debe crearse una función constructora.

Constante: elemento cuyo valor no cambia. Por ejemplo, la constante Key.TAB siempre tiene el mismo significado: corresponde a la tecla de tabulación del teclado. Las constantes son útiles para comparar valores.

Constructor: función que se utiliza para definir las propiedades y métodos de una clase. Por ejemplo, el siguiente código crea un nueva clase Circle mediante una función constructora denominada Circle:

function Circle(x, y, radius){
      this.x = x;
      this.y = y;
      this.radius = radius;
}
 

Tipo de datos: conjunto de valores y las operaciones que pueden realizarse sobre ellos. Los tipos de datos de ActionScript son: cadena, número, valor booleano, objeto, clip de película, función, nulo y no definido.

 

Evento: acción que tiene lugar durante la reproducción de una película. Por ejemplo, cuando se carga un clip de película se generan diferentes eventos: la cabeza lectora accede a un fotograma, el usuario hace clic en un botón o clip de película, o el usuario introduce información mediante el teclado.

 

Controlador de eventos: acción especial que gestiona eventos como mouseDown o load. Existen dos tipos de controladores de eventos de ActionScript: acciones y métodos. Sólo hay dos acciones de controlador de eventos: on y onClipEvent. En la caja de herramientas Acciones, cada objeto de ActionScript que tiene métodos de controlador de eventos tiene una subcategoría denominada Eventos.

 

Expresión: cualquier combinación válida de símbolos de ActionScript que representan un valor. Una expresión está formada por operadores y operandos. En la expresión x + 2, por ejemplo, x y 2 son operandos y + es un operador.

 

Función: bloque de código reutilizable que acepta parámetros y puede devolver un valor. Por ejemplo, la función getProperty acepta como parámetro el nombre de una propiedad y el nombre de instancia de un clip de película, y como resultado devuelve el valor de la propiedad. La función getVersion devuelve la versión de Flash Player que está reproduciendo la película en un momento dado.

 

Identificador: nombre que se utiliza para identificar una variable, una propiedad, un objeto, una función o un método. El primer carácter debe ser una letra, un carácter de subrayado (_) o un símbolo de dólar ($). Los caracteres siguientes deben ser una letra, un número, un carácter de subrayado (_) o un símbolo de dólar ($). Por ejemplo, firstName es el nombre de una variable.

 

Instancia: objeto que pertenece a una determinada clase. Cada instancia de una clase contiene todas las propiedades y métodos de dicha clase. Todos los clips de película son instancias con propiedades (por ejemplo, _alpha y _visible) y métodos (por ejemplo, gotoAndPlay y getURL) de la clase MovieClip.

Los nombres de instancia son nombres exclusivos que permiten dirigir instancias de clips de película a través de scripts. Utilice el inspector de propiedades para asignar nombres de instancia a las instancias del escenario. Por ejemplo, un símbolo maestro de la biblioteca podría denominarse counter, y las dos instancias de dicho símbolo en la película podrían denominarse scorePlayer1 y scorePlayer2. En el siguiente código se utilizan los nombres de instancia para establecer una variable denominada score en cada instancia de un clip de película:

 

_root.scorePlayer1.score += 1;
_root.scorePlayer2.score -= 1;
 

Palabra clave: palabra reservada que tiene un significado especial. Por ejemplo, var es una palabra clave que se utiliza para declarar variables locales. Una palabra clave no puede utilizarse como identificador. Por ejemplo, var no es un nombre de variable válido.

 

Método: función que ha sido asignada a un objeto. Una vez que se ha asignado una función, se la puede llamar como método de ese objeto. Por ejemplo, en el código siguiente, clear se convierte en un método del objeto controller:

 

function reset(){
      this.x_pos = 0;
      this.x_pos = 0;
}
controller.clear = reset;
controller.clear();
 

Objeto: conjunto de propiedades y métodos; cada objeto tiene su propio nombre y es una instancia de una clase determinada. Los objetos incorporados están predefinidos en el lenguaje ActionScript. Por ejemplo, el objeto incorporado Date ofrece información procedente del reloj del sistema.

 

Operador: término que calcula un nuevo valor a partir de uno o más valores. Por ejemplo, el operador suma (+) suma dos o más valores para generar un nuevo valor. Los valores que manipulan los operadores se denominan operandos.

 

Parámetro: (denominado también argumento) un marcador de posición que permite pasar valores a las funciones. La siguiente función welcome, por ejemplo, utiliza dos valores que recibe de los parámetros firstName y hobby:

 

function welcome(firstName, hobby) {
      welcomeText = "Hola, " + firstName + "Veo que te gusta " + hobby;
}
 

Propiedad: atributo que define un objeto. Por ejemplo, _visible es una propiedad de todos los clips de película que define si el clip está visible u oculto.

 

Ruta de destino: dirección jerárquica de nombres de instancias de clips de película, variables y objetos de una película. El nombre de una instancia de clip de película se asigna en el inspector de propiedades del clip de película. La línea de tiempo principal siempre se denomina _root. Puede utilizar la ruta de destino para dirigir una acción a un clip de película o para obtener o establecer el valor de una variable. Por ejemplo, la sentencia siguiente es la ruta de destino a la variable volume dentro del clip de película stereoControl:

 

_root.stereoControl.volume
 

Variable: identificador que almacena valores de cualquier tipo de datos. Las variables pueden crearse, modificarse y actualizarse. Los valores almacenados en una variable pueden recuperarse para ser utilizados en scripts. En el siguiente ejemplo, los identificadores situados a la izquierda de los signos igual son variables:

 

x = 5;
name = "Lolo";
customer.address = "66 7th Street";
c = new Color(mcinstanceName);

 

Análisis de un script de ejemplo

En la película de muestra zapper.swf, cuando un usuario arrastra el insecto hasta la toma eléctrica, el insecto cae y la toma empieza a vibrar. La línea de tiempo principal sólo tiene un fotograma y contiene tres objetos: la mariquita, la toma eléctrica y un botón de restablecimiento. Cada uno de estos objetos es una instancia del clip de película.
Hay un solo script en la película, y está asociado a la instancia
bug, como se muestra a continuación en el panel Acciones:


Panel Acciones con el script asociado a la instancia bug

  El nombre de instancia del insecto es bug y el de al toma es zapper. En el script, se hace referencia al insecto como this porque el script está asociado al insecto y la palabra reservada this hace referencia al objeto que lo contiene.

Existen dos controladores onClipEvent con dos eventos distintos: load y enterFrame. Las acciones de la sentencia onClipEvent(load) se ejecutan una sola vez, al cargarse la película. Las acciones de la sentencia onClipEvent(enterFrame) se ejecutan cada vez que la cabeza lectora accede a un fotograma. Aunque se trate de películas de un solo fotograma, la cabeza lectora accederá al fotograma reiteradamente y el script se ejecutará de la misma forma. Dentro de cada controlador onClipEvent se llevan a cabo las siguientes acciones:

onClipEvent(load) Se definen dos variables, initx e inity, para almacenar las posiciones x e y iniciales de la instancia de clip de película bug. Una función se define y se asigna al evento onRelease de la instancia Restablecer. Se llama a esta función cada vez que se presiona y suelta el botón del ratón en el botón Restablecer. La función coloca la mariquita de nuevo en su posición inicial en el escenario, restablece sus valores de rotación y alfa, y restablece la variable zapped en false.

onClipEvent (load) {
      initx = _x;
      inity = _y;
      _root.Reset.onRelease = function() {
            zapped = false;
            _x = initx;
            _y = inity;
            _alpha = 100
            _rotation = 0;
      };
} 

onClipEvent(enterFrame) Una sentencia if condicional utiliza el método hitTest para comprobar si la instancia del insecto está tocando la instancia de la toma eléctrica (_root.zapper). La evaluación puede generar dos posibles resultados, true o false:

Si el método hitTest devuelve el valor true, se llama al método stopDrag, la variable zapper se establece en true, se cambia el valor de las propiedades alfa y de rotación y se indica a la instancia zapped que debe reproducirse.

Si el método hitTest devuelve false, no se ejecuta ningún código especificado entre {} que aparezca inmediatamente después de la sentencia if.

 

Existen dos controladores on asociados a la instancia bug con dos eventos distintos: press y release. Las acciones de la sentencia on(press) se ejecutan al presionar el botón del ratón sobre la instancia bug. Las acciones de la sentencia on(release) se ejecutan al liberar el botón del ratón sobre la instancia bug. Dentro de cada controlador onClipEvent se llevan a cabo las siguientes acciones:

 

on(press) Una acción startDrag hace posible que la mariquita pueda arrastrarse. Puesto que el script está asociado a la instancia bug, la palabra clave this indica que se trata de la instancia bug que puede arrastrarse:

 

on (press) {
      this.startDrag();
}
 

on(release) Una acción stopDrag detiene la acción de arrastre:

 

on (release) {
      stopDrag();
}

 

Palabras clave

ActionScript reserva palabras para usarlas específicamente en su lenguaje de programación, de modo que no se pueden utilizar como nombres de variables, de funciones ni de etiquetas. En la siguiente tabla se muestra una lista de las palabras clave de ActionScript:

break

else

instanceof

typeof

case

for

new

var

continue

function

return

void

default

if

switch

while

delete

in

this

with

 

Constantes

Una constante es una propiedad cuyo valor nunca cambia.

Por ejemplo, las constantes BACKSPACE, ENTER, QUOTE, RETURN, SPACE y TAB son propiedades del objeto Key y se refieren a las teclas del teclado. Para comprobar si el usuario está presionando la tecla Intro, utilice la siguiente sentencia:

if(Key.getCode() == Key.ENTER) {
      alert = "¿Está listo para jugar?";
      controlMC.gotoAndStop(5);
}

 

Tipos de datos

Un tipo de datos describe la clase de información que puede contener una variable o el elemento de ActionScript. Existen dos clases de tipos de datos: primitivos y de referencia. Los tipos de datos primitivos (cadenas, números y booleanos) tienen un valor constante y, por consiguiente, pueden contener el valor real del elemento que representan. Los tipos de datos de referencia (clip de película y objeto) tienen valores que pueden cambiar y, por consiguiente, contienen referencias al valor real del elemento. Las variables que contienen datos de tipo primitivo se comportan de modo diferente en ciertas situaciones que las que contienen datos de tipo referencia. También existen dos tipos de datos especiales: nulos y no definidos.

Cada tipo de datos tiene sus propias reglas y está definido en los temas siguientes:

Cadena

Número

Booleano

Objeto

Clip de película

Nulo

No definido

 

Cadena

Una cadena es una secuencia de caracteres tales como letras, números y signos de puntuación. Las cadenas se introducen en una sentencia de ActionScript entre comillas simples o dobles. Las cadenas se tratan como caracteres, no como variables. Por ejemplo, en la siguiente sentencia, "L7" es una cadena:

favoriteBand = "L7";
 

Puede utilizar el operador de suma (+) para concatenar o unir dos cadenas. ActionScript trata los espacios del comienzo o del final de una cadena como parte literal de la cadena. La siguiente expresión incluye un espacio después de la coma:

 

greeting = "Bienvenido," + firstName;
 

Aunque ActionScript no distingue entre mayúsculas y minúsculas en las referencias a variables, los nombres de instancia y las etiquetas de fotogramas, en las cadenas literales sí las distingue. Por ejemplo, las dos sentencias siguientes colocan texto diferente en las variables de campo de texto especificadas, ya que "Hello" y "HELLO" son cadenas literales.

 

invoice.display = "Hello";
invoice.display = "HELLO";
 

Para incluir un signo de interrogación en una cadena, ponga delante el carácter de barra inversa (\). A esto se le llama "utilizar una secuencia de escape" en un carácter. Existen otros caracteres que no pueden representarse en ActionScript, a menos que se utilice una secuencia de escape especial. La siguiente tabla muestra todos los caracteres de escape de ActionScript:

 

Secuencia de escape

Carácter

\b

Carácter de retroceso (ASCII 8)

\f

Carácter de salto de página (ASCII 12)

\n

Carácter de avance de línea (ASCII 10)

\r

Carácter de retorno de carro (ASCII 13)

\t

Carácter de tabulación (ASCII 9)

\"

Comillas dobles

\'

Comillas simples

\\

Barra inversa

\000 - \377

Byte especificado en octal

\x00 - \xFF

Byte especificado en hexadecimal

\u0000 - \uFFFF

Carácter Unicode de 16 bits especificado en hexadecimal

 

Número

El tipo de datos numérico es un número de coma flotante de doble precisión. Puede manipular los números mediante los operadores aritméticos de suma (+), resta (-), multiplicación (*), división (/), módulo (%), incremento (++) y decremento (--). También puede utilizar los métodos del objeto incorporado Math para manipular los números. En el ejemplo siguiente se utiliza el método sqrt (raíz cuadrada) para devolver la raíz cuadrada del número 100:

Math.sqrt(100);

 

Booleano

Un valor Booleano puede ser true o false. ActionScript también convierte los valores true y false en 1 y 0 cuando sea adecuado. Los valores booleanos se usan con mayor frecuencia con los operadores lógicos en sentencias de ActionScript que realizan comparaciones para controlar el flujo de un script. Por ejemplo, en el siguiente script, la película se reproduce si la variable password es true:

onClipEvent(enterFrame) {
      if (userName == true && password == true){
            play();
      }
}

 

Objeto

Un objeto es un conjunto de propiedades. Cada propiedad tiene un nombre y un valor. El valor de la propiedad puede ser cualquier tipo de datos de Flash, incluso el tipo de datos de objeto. Esto permite organizar los objetos unos dentro de otros o "anidarlos". Para especificar objetos y sus propiedades, debe utilizar el operador punto (.). Por ejemplo, en el siguiente código, hoursWorked es una propiedad de weeklyStats, que a su vez es una propiedad de employee:

employee.weeklyStats.hoursWorked
 

Puede utilizar los objetos incorporados de ActionScript para acceder y manipular tipos de información específicos. Por ejemplo, el objeto Math tiene métodos que realizan operaciones matemáticas con los números que le pasan. En este ejemplo se utiliza el método sqrt:

 

squareRoot = Math.sqrt(100);
 

El objeto MovieClip de ActionScript tiene métodos que permiten controlar las instancias del símbolo de clip de película en el escenario. En este ejemplo se utilizan los métodos play y nextFrame:

 

mcInstanceName.play();
mc2InstanceName.nextFrame();
 

También puede crear sus propios objetos para organizar la información de la película. Para agregar interacción a una película mediante ActionScript, necesitará distintos datos: por ejemplo, puede necesitar el nombre del usuario, la velocidad de una pelota, el nombre de los artículos de una canasta de compras, el número de fotogramas que se han cargado, el código postal del usuario, o el nombre de la última tecla que se ha presionado. La creación de objetos personalizados permite organizar esta información en grupos, simplificando la creación de scripts y su reutilización.

 

Clip de película

Los clips de película son símbolos que pueden contener y ejecutar una animación en una película Flash. Son el único tipo de datos que hace referencia a elementos gráficos. El tipo de datos de clip de película permite controlar los símbolos del clip de película mediante los métodos del objeto MovieClip. Puede llamar a los métodos mediante el operador punto (.), como se muestra a continuación:

myClip.startDrag(true);
parentClip.getURL("http://www.macromedia.com/support/" + product);

 

Nulo

El tipo de datos nulo tiene únicamente un valor: null. Este valor significa "ningún valor", es decir, no hay datos. El valor null puede utilizarse en distintas situaciones. A continuación se indican algunos ejemplos:

Para indicar que una variable todavía no ha recibido ningún valor

Para indicar que una variable ya no contiene ningún valor

Como valor de retorno de una función, para indicar que la función no ha encontrado ningún valor disponible para devolverlo

Como parámetro de una función, para indicar que un parámetro se ha omitido

 

No definido

El tipo de datos no definido tiene un valor, undefined, y se utiliza para una variable a la que no se ha asignado ningún valor.

Variables

Una variable es un contenedor que almacena información. El contenedor en sí es siempre el mismo, pero el contenido puede cambiar. La modificación del valor de una variable a medida que se reproduce la película permite registrar y guardar información sobre las acciones del usuario, registrar valores que se modifican conforme se reproduce la película, o comprobar si una condición es verdadera o falsa.

Cuando se define una variable por primera vez, se recomienda asignarle un valor conocido. Esta acción se conoce como inicializar una variable y suele realizarse en el primer fotograma de la película. Inicializar las variables permite realizar un seguimiento y comparar el valor de la variable a medida que se reproduce la película.

Las variables pueden contener cualquier tipo de datos: número, cadena, booleano, objeto o clip de película. El tipo de datos que contiene una variable afecta al modo en el que cambia el valor de la variable cuando se le asigna en un script.

El tipo de información normal que suele guardarse en una variable incluye un URL, un nombre de usuario, el resultado de una operación matemática, el número de veces que ocurre un evento, o si se ha hecho clic en un botón. Cada película e instancia de clip de película tiene su propio conjunto de variables, cada una de ellas con su prop

A continuación se muestra un ejemplo en el que se pasa un valor por referencia:

var myArray = ["tom", "dick"];
var newArray = myArray;
myArray[1] = "jack";
trace(newArray);
 
 
function zeroArray (theArray){
      var i;
      for (i=0; i < theArray.length; i++) {
            theArray[i] = 0;
      }
} 
 
var myArray = new Array();
myArray[0] = 1;
myArray[1] = 2;
myArray[2] = 3;
zeroArray(myArray);
 

La función zeroArray acepta un objeto Array como parámetro y establece los elementos de la matriz en 0.

Operadores numéricos

Los operadores numéricos realizan sumas, restas, multiplicaciones, divisiones y otras operaciones aritméticas.

El uso más común del operador de incremento es i++ en lugar del uso más detallado i = i+1. Un operador de incremento puede especificarse antes o después de un operando. En el ejemplo siguiente, primero se aumenta el valor de age y luego se verifica frente a 30:

if (++age >= 30)

En el ejemplo siguiente, se aumenta el valor de age tras realizar la comprobación:

 

if (age++ >= 30)

En la tabla siguiente se enumeran los operadores numéricos de ActionScript:

 

Operador

Operación realizada

+

Suma

*

Multiplicación

/

División

%

Módulo (resto de la división)

-

Resta

++

Incremento

--

Decremento