Tutorial 6 - Animación con ActionScript 3.0

Paso 6 de 19

Si contraemos el panel Acciones pulsando sobre la barra gris superior del panel para ver el escenario, no observamos ningún cambio en la nube. Esto se debe a que la programación se ejecuta cuando probamos o publicamos la película (tiempo de ejecución), y no directamente en el escenario de edición (tiempo de edición).

Para comprobar cómo ha cambiado el alfa de la nube tendremos que probar la película con Control > Probar película (Ctrl+Intro).

Si hemos asignado un valor para una propiedad en el código, este valor prevalecerá sobre lo que hayamos definido en tiempo de edición. Por ejemplo, en el caso del alfa, podemos asignar diferentes valores en el inspector de Propiedades, pero cuando probemos la película siempre veremos la nube con el 60% del alfa, ya que es el valor que hemos introducido en el código.

De la misma forma, si asignamos en el código valores para otras propiedades, como por ejemplo las posiciones X e Y del clip, éste aparecerá en las coordenadas que especifiquemos en la programación, y no en las coordenadas en que lo hayamos situado en el escenario.

Para añadir interactividad a una película, lo más probable es que necesitemos detectar cuándo ocurre un determinado evento (que se haya clicado sobre un botón, que se haya pulsado una tecla, etc.), y ejecutar después una acción en base a ello.

Para ello tenemos que agregar un listener, es decir, añadir a un objeto la capacidad de detectar si algo ha ocurrido, y que llame a una función cuando ello ocurra.

La forma general de crear un listener es la siguiente:

nameInstance.addEventListener(nameEvent, nameFunction);

En nuestro caso vamos a hacer que nuestra nube se arrastre cuando estemos pulsando sobre ella.

Para ello añadiremos la siguiente línea al código:

cloud1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);

Con este código hemos añadido a nuestra instancia cloud1_mc, un detector para un evento del ratón (MouseEvent). En concreto, el evento del ratón que queremos que detecte es si el usuario ha pulsado sobre ella (MOUSE_DOWN). Si es así, ejecutará una función a la que hemos llamado drag, y que definiremos más adelante.