Tutorial 6 - Animación con ActionScript 3.0

Paso 14 de 19

Arrastramos otra instancia del clip cloud al escenario en la misma capa clouds que la nube anterior, y en el inspector de Propiedades le damos el nombre de instancia cloud2_mc.

Instancia cloud2_mc

Al principio de la programación, tras la línea en la que habíamos definido el alfa de la primera instancia, añadimos algunas propiedades para la nueva instancia.

cloud1_mc.alpha = .6;
cloud2_mc.alpha = .4; //more transparent
cloud2_mc.scaleY = .7; //lower height (70%)
cloud2_mc.z = 300; //add depth

Después añadimos los mismos listener para esta segunda instancia. Para ello basta con copiar y pegar los listeners ya creados y sustituir cloud1_mc por cloud2_mc:

cloud1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
cloud1_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
cloud1_mc.addEventListener(MouseEvent.ROLL_OUT, drop);
cloud1_mc.addEventListener(Event.ENTER_FRAME, wind);

cloud2_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
cloud2_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
cloud2_mc.addEventListener(MouseEvent.ROLL_OUT, drop);
cloud2_mc.addEventListener(Event.ENTER_FRAME, wind);

Dentro de cada función hacíamos también referencia a la instancia cloud1_mc. En vez de repetir las líneas con la programación para cloud2_mc dentro de las funciones, lo que vamos a hacer es que la programación haga referencia al objeto que inició el evento.

Es decir, si la función drag ha sido llamada por un listener de la cloud1_mc, arrastraremos esa nube, pero si la función ha sido iniciada por la cloud2_mc, será esta nube la que arrastremos.