Utilización de clips de película como máscaras

Puede utilizar un clip de película como una máscara para crear un agujero a través del cual se ve el contenido de otro clip de película. El clip de película de máscara reproduce todos los fotogramas de su línea de tiempo, igual que un clip de película normal. Puede hacer que el clip de película de máscara se pueda arrastrar, animarlo a lo largo de una guía de movimiento, utilizar formas separadas en una sola máscara o cambiar el tamaño de una máscara de forma dinámica. También puede utilizar ActionScript para activar y desactivar una máscara durante la reproducción de una película.

No puede utilizar una máscara para enmascarar otra máscara ni establecer la propiedad _alpha de un clip de película de máscara. Sólo se pueden utilizar rellenos en un clip de película que se usa como máscara; los trazos se pasan por alto.

 
Para crear una máscara:

1

En el escenario, elija el clip de película que desea enmascarar.

2

En el inspector de propiedades, introduzca un nombre de instancia para el clip de película, como por ejemplo image.

3

Cree el clip de película que se va a enmascarar. Asígnele un nombre de instancia en el inspector de propiedades, como por ejemplo mask.

4

Seleccione el fotograma 1 de la línea de tiempo.

5

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

6

En la caja de herramientas Acciones (en la parte izquierda del panel), haga clic en la categoría Objetos, la categoría Película, la categoría Clip de película y la categoría Métodos, y, a continuación, haga doble clic en el método setMask.

7

En el área de parámetros, introduzca el nombre de instancia del clip de película de máscara.

 

El código deberá ser similar al siguiente:

 

image.setMask(mask);

 

Gestión de eventos con ActionScript

Durante la reproducción de una película se producen determinados eventos. Algunos de ellos siempre se producen en el mismo orden (por ejemplo, load, enterFrame y unload), mientras que otros se producen cuando el usuario lo inicia (por ejemplo, mouseDown, mouseUp, mouseMove, keyDown y keyUp). El evento data tiene lugar cuando la película recibe datos de una fuente externa. Puede utilizar estos eventos para hacer que se ejecuten los scripts; esta operación se denomina desencadenar un script. La respuesta al evento se denomina gestión de eventos. Por ejemplo, puede crear un script que indique a un clip de película que se reproduzca. Si desea que el clip de película se reproduzca cuando reciba información de un archivo de texto externo, puede utilizar el evento data para desencadenar el script. Existen dos modos de gestionar eventos mediante ActionScript: puede utilizar las acciones de controlador de eventos onClipEvent y on, o bien utilizar los métodos de controlador de eventos de los objetos MovieClip y Button.

En la caja de herramientas Acciones, las acciones de controlador de eventos onClipEvent y on se encuentran en la categoría Control de película de la carpeta Acciones. Al utilizar una de estas acciones, se pasa un evento a la acción como un parámetro (por ejemplo, on(press)). En la caja de herramientas Acciones, los objetos MovieClip y Button tienen categorías de eventos que contienen métodos que corresponden a cada clip de película y evento de botón, como por ejemplo onLoad, onEnterFrame, onUnload, onMouseDown, onMouseUp, onMouseMove, onKeyDown, onKeyUp y onData. Puede utilizar estos métodos para definir una función que se ejecuta cuando se produce el evento. Los métodos de controlador de eventos no entran en conflicto con las acciones correspondientes; ambos eventos hacen que se ejecuten sus scripts.

Sólo puede adjuntar las acciones onClipEvent y on a las instancias de clip de película que se han colocado en el escenario en modo de edición. No puede adjuntar las acciones onClipEvent y on a las instancias de clip de película creadas en tiempo de ejecución con el método attachMovie. Por ejemplo, el código siguiente se adjunta a una instancia de clip de película del escenario:

onClipEvent(onLoad){
      trace("cargado");
}
 

Cuando se utilizan los métodos de controlador de eventos MovieClip o Button, no es necesario asignar el script a la instancia cuyo evento se está gestionando; por ejemplo, puede asignar el script a un fotograma. Esto permite controlar los clips de película y botones colocados en el escenario en modo de edición, así como los clips de película creados por ActionScript durante la reproducción de una película. Para utilizar los métodos de controlador de eventos, debe asignar una función directamente a una instancia. La función se ejecuta cuando se produce el evento especificado por el método. Por ejemplo, el código siguiente desencadena la acción trace al cargarse la instancia mc:

 

mc.onLoad = function (){ 
      trace("cargado");
};

 

Utilización de los métodos de controlador de eventos de clip de película para desencadenar scripts

Puede utilizar los métodos de la categoría Eventos del objeto MovieClip para gestionar eventos de clip de película. Debe definir una función y asignarla al método de controlador de eventos. Si no asigna una función al método, el método de controlador de eventos no tendrá ningún efecto sobre la película.

Puede llamar a un método de controlador de eventos desde la instancia del clip de película cuyo evento desea gestionar, o crear una nueva clase de ActionScript y definir los métodos del objeto prototipo de dicha clase.

 
Para utilizar un método de controlador de eventos de clip de película para desencadenar un script:

1

En el escenario, seleccione el clip de película cuyo evento desea gestionar.

2

Introduzca un nombre de instancia en el inspector de propiedades.

3

Seleccione el fotograma, botón o clip de película al que desee asociar el método.

4

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

5

En la caja de herramientas Acciones (en la parte izquierda del panel), haga clic en la categoría Objetos, la categoría Película, la categoría Clip de película y la categoría Eventos y, a continuación, haga doble clic en uno de los métodos de controlador de eventos de MovieClip.

6

Introduzca valores para los parámetros siguientes:

En el parámetro para el objeto, introduzca la ruta de destino del clip de película cuyo evento desea gestionar.

Especifique los parámetros que sean necesarios para la función que va a definir. En modo Normal, estos parámetros se introducen en el cuadro de texto Parámetros.

7

Agregue acciones a la función para definirla.

 

En el código siguiente se define una función para el método onPress de la instancia mc que establece la propiedad _alpha de mc al cargar la instancia mc:

 

mc.onPress = function() {
    this._alpha = 50;
};

 

Utilización de los métodos de controlador de eventos de botón para desencadenar scripts

Del mismo modo que un conjunto de eventos está asociado con símbolos de clip de película, un conjunto de eventos también está asociado con símbolos de botón. Puede utilizar los métodos de controlador de eventos de botón con las instancias de botón. También puede utilizar eventos de botón con clips de película

Puede llamar a un método de controlador de eventos desde la instancia del botón cuyo evento desea gestionar, o crear una nueva clase de ActionScript y definir los métodos del objeto prototipo de dicha clase. Para obtener más información sobre cómo definir un método del objeto prototipo.

Si utiliza un método de controlador de eventos con un botón, la palabra clave this hace referencia a la instancia de botón que llama al método. Por ejemplo, el código siguiente envía _level0.myButton a la ventana Salida:

myButton.onPress = function() {

      trace(this);
}

 
Para utilizar un método de controlador de eventos de botón para desencadenar un script:

1

En el escenario, seleccione la instancia de botón cuyo evento desea gestionar.

2

Introduzca un nombre de instancia en el inspector de propiedades.

3

Seleccione el fotograma, botón o clip de película al que desee asociar el método.

4

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

5

En la caja de herramientas Acciones (en la parte izquierda del panel), haga clic en la categoría Objetos, la categoría Película, la categoría Clip de película y la categoría Eventos y, a continuación, haga doble clic en uno de los métodos de controlador de eventos de MovieClip.

6

Introduzca valores para los parámetros siguientes:

En el parámetro para el objeto, introduzca la ruta de destino del botón cuyo evento desea gestionar.

Especifique los parámetros que sean necesarios para la función que va a definir. En modo Normal, estos parámetros se introducen en el cuadro de texto Parámetros.

7

Agregue acciones a la función para definirla.

 

El código siguiente define una función para el método onPress de la instancia myButton que desencadena la acción trace:

 

myButton.onPress = function() {
    trace("se ha llamado al método onPress");
};

 

Utilización de eventos de botón con clips de película para desencadenar scripts

Puede utilizar eventos de botón con instancias de botón, pero también puede utilizarlos con instancias de clip de película para crear clips de película de botón. Los clips de película de botón combinan las posibilidades que ofrecen los clips de película con el control de los eventos de botón. Puede convertir un clip de película en un clip de película de botón mediante la asignación de un controlador on a la instancia de clip de película o mediante la definición de métodos de controlador de eventos de botón para una instancia. También puede crear una nueva clase y definir métodos de controlador de eventos en el objeto prototipo de dicha clase..

Todos los eventos de botón se desencadenan a través de la interacción del usuario: press, release, releaseOutside, rollOver, rollOut, dragOver, dragOut y keyPress. En la caja de herramientas Acciones, el objeto MovieClip tiene una categoría Eventos que contiene métodos que corresponden a cada evento de botón, como por ejemplo onPress, onRelease, onReleaseOutside, onRollOver, onRollOut, onDragOver, onDragOut y onKeyPress.

Un clip de película de botón tiene una línea de tiempo de clip de película completa en lugar de la línea de tiempo de cuatro fotogramas de un botón. Puede utilizar las etiquetas de fotograma _up, _over y _down para crear los estados Reposo, Sobre y Presionado de un clip de película de botón. Cuando el usuario desplaza el ratón sobre un clip de película de botón o hace clic en él, la acción gotoAndStop hace que la cabeza lectora vaya a la etiqueta de fotograma adecuada y muestre la imagen apropiada en el escenario. Si desea que la cabeza lectora empiece a funcionar en la etiqueta de fotograma, puede colocar la acción play en el fotograma.

Para designar un clip de película para utilizarlo como zona activa de un clip de película de botón, debe utilizar la propiedad hitArea del objeto MovieClip.

 
Para utilizar la acción
on para crear un clip de película de botón:

1

Seleccione un clip de película en el escenario.

2

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

3

En la caja de herramientas Acciones (en la parte izquierda del panel), haga clic en la categoría Acciones, la categoría Control de película y, a continuación, haga doble clic en la acción on.

4

En modo Experto, introduzca los eventos que desea incluir. En modo Normal, elija estos eventos, situados en la parte superior del panel Script.

5

Dentro de la acción on, agregue acciones para que se ejecuten cuando se produzcan los eventos seleccionados.

 
Si desea definir un método de controlador de eventos de clip de película para crear un clip de película de botón:

1

En el escenario, seleccione el clip de película que desea convertir en un clip de película de botón.

2

Introduzca un nombre de instancia en el inspector de propiedades.

3

Seleccione el fotograma, botón o clip de película al que desee asociar la acción.

4

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

5

En la caja de herramientas Acciones, haga clic en la categoría Objetos, la categoría Película, la categoría Clip de película y la categoría Eventos y, a continuación, haga doble clic en uno de los métodos de controlador de eventos de botón.

6

Introduzca valores para los parámetros siguientes:

En el parámetro para el objeto, introduzca la ruta de destino del clip de película cuyo evento desea gestionar.

Especifique los parámetros que sean necesarios para la función que va a definir. En modo Normal, estos parámetros se introducen en el cuadro de texto Parámetros.

7

Agregue acciones a la función para definirla.

 

El código siguiente define una función para el método onPress de la instancia mc que mueve la cabeza lectora de mc:

 

mc.onPress = function() {
    play();
};

 
Para crear estados para el clip de película de botón:

1

Seleccione un fotograma de la línea de tiempo para utilizarlo como estado de botón (Reposo, Sobre o Presionado).

2

Introduzca une etiqueta de fotograma en el inspector de propiedades (_up, _over o _down).

3

Para agregar más estados de botón, repita los pasos 1 y 2.

 

Definición de métodos de controlador de eventos del objeto prototipo

Puede crear una nueva clase de ActionScript para clips de película y definir los métodos de controlador de eventos del objeto prototipo de dicha clase. La definición de los métodos del objeto prototipo hace que todas las instancias de este símbolo respondan a estos eventos del mismo modo.

También puede agregar una acción de controlador de eventos onClipEvent u on a una sola instancia para proporcionar instrucciones exclusivas que sólo se ejecutarán cuando se produzca el evento de dicha instancia. Las acciones onClipEvent y on no prevalecen sobre el método de controlador de eventos; ambos eventos hacen que se ejecuten sus scripts. Sin embargo, si define los métodos de controlador de eventos del objeto prototipo y también define un método de controlador de eventos para una instancia determinada, la definición de la instancia prevalece sobre la definición del objeto prototipo.

 
Para definir un método de controlador de eventos en un objeto prototipo de un objeto:

1

Coloque un símbolo de clip de película con el ID de vínculo theID en la biblioteca.

2

Seleccione un fotograma de la línea de tiempo del objeto.

3

Elija Ventana > Acciones para abrir el panel Acciones si aún no está abierto.

4

Si el panel Acciones está en modo Normal, elija Modo Experto en el menú emergente Ver opciones situado encima del panel Script.

5

Utilice la acción function para definir una nueva clase en el panel Script, como se muestra a continuación:

 

// defina una clase
function myClipClass() {}

 

La nueva clase se asignará a todas las instancias de clip de película que se han agregado a la película mediante la línea de tiempo o que se han agregado a la película con el método attachMovie o duplicateMovieClip. Si desea que estos clips de película puedan acceder a los métodos y propiedades del objeto incorporado MovieClip, deberá hacer que la nueva clase se herede de la clase MovieClip.

6

En el panel Script, introduzca el código siguiente:

 

// heredar de la clase MovieClip
myClipClass.prototype = new MovieClip();

 

Ahora, la clase myClipClass hereda todas las propiedades y métodos de la clase MovieClip.

7

Introduzca el código siguiente para definir los métodos de controlador de eventos para la nueva clase:

 

// defina los métodos de controlador de eventos para la clase myClipClass
myClipClass.prototype.onLoad = function() {trace ("se ha cargado el clip de película");}
myClipClass.prototype.onEnterFrame = function() {trace ("el clip de película ha entrado en el fotograma");}

8

Elija Ventana > Biblioteca para abrir el panel Biblioteca si aún no está abierto.

9

Seleccione los símbolos que desea asociar con la nueva clase y elija la opción Vinculación del menú emergente situado en la parte su derecha del panel Biblioteca.

10

En el cuadro de diálogo Propiedades de vinculación, seleccione Exportar para ActionScript.

11

Introduzca un identificador en el cuadro Identificador.

 

El identificador debe ser el mismo para todos los símbolos que desea asociar con la nueva clase. En el ejemplo myClipClass, el identificador es theID.

12

En el panel Script, introduzca el código siguiente:

 

// registre la clase
Object.registerClass("theID", myClipClass);
_root.attachMovie("theID","myName",1);

Este código registra cualquier símbolo cuyo identificador de vínculo es theID con la clase myClipClass. Todas las instancias de myClipClass tienen métodos de controlador de eventos que se comportan tal como se definió en el paso 6. También se comportan como todas las instancias de la clase MovieClip, puesto que en el paso 5 se indicó que la nueva clase debe heredarse de la clase MovieClip.

function myClipClass(){}
 
myClipClass.prototype = new MovieClip();
myClipClass.prototype.onLoad = function(){
      trace("se ha cargado el clip de película");
}
myClipClass.prototype.onPress = function(){
      trace("presionado");
}
 
myClipClass.prototype.onEnterFrame = function(){
      trace("el clip de película ha entrado en el fotograma");
}
 
myClipClass.prototype.myfunction = function(){
      trace("se ha llamado al método myfunction");
}
 
Object.registerClass("myclipID",myClipClass);
_root.attachMovie("myclipID","ablue2",3); 

 

Manipulación de botones con ActionScript

Cada botón de una película Flash es un objeto de ActionScript de la clase Button con sus propios métodos y propiedades. Los botones poseen las mismas propiedades que los clips de película, pero algunas propiedades (_currentframe, _droptarget, _framesloaded y _totalframes) no son compatibles y devuelven el valor undefined. La clase Button tiene dos propiedades adicionales: useHandCursor, que permite decidir si el cursor se convierte en una mano cuando pasa por encima de un botón, y enabled, que permite especificar si el botón está activo o no.

Puede asignar un nombre de instancia a un botón en el inspector de propiedades y utilizar una ruta de destino para manipularlo con ActionScript. Para escribir una ruta de destino para una instancia de botón, escriba la ruta de destino del clip de película en el que se encuentra el botón, agregue un punto (.) y el nombre de instancia del botón. En el ejemplo siguiente se desactiva la instancia de botón myButton de la línea de tiempo del clip de película childClip, que se encuentra en la línea de tiempo del clip de película parentClip:

parentClip.childClip.myButton.enabled = false;