Tutorial 6 - Animació amb ActionScript 3.0
Pas 9 de 19
Ara que hem comprovat que el nostre codi funciona correctament, substituïm la funció trace
per l'acció que realment volem que tingui lloc, que és que el núvol s’arrossegui.
function drag(e:MouseEvent):void
{
cloud1_mc.startDrag();
}
Si tornem a provar la nostra pel·lícula, podrem veure que en prémer el núvol aquest comença a arrossegar-se juntament amb el ratolí, i no deixa d'arrossegar-se en cap moment.
Perquè l'arrossegament s’aturi, haurem d'introduir una funció nova que permeti que, quan es deixi anar el botó del ratolí, el núvol deixi d'arrossegar-se.
El funcionament serà el mateix que l'anterior. Haurem de crear un altre detector per a l'esdeveniment de deixar anar el ratolí, i assignar-hi una funció que aturi l'arrossegament del núvol.
Per llegibilitat del codi podem ajuntar, d'una banda, les línies amb la creació dels listeners i, d'altra banda, les funcions.
La manera més ràpida per a escriure aquest codi nou és copiar i enganxar el que ja havíem creat, ja que en molts aspectes és similar. Substituirem MOUSE_DOWN
per MOUSE_UP
, i el nom de la funció nova serà drop
en comptes de drag
. Finalment, la funció que atura un arrossegament actiu és stopDrag()
.
El codi que hem creat fins ara en el primer fotograma de la capa as és el següent:
cloud1_mc.alpha = .6;
cloud1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
cloud1_mc.addEventListener(MouseEvent.MOUSE_UP, drop);
function drag(e:MouseEvent):void
{
cloud1_mc.startDrag();
}
function drop(e:MouseEvent):void
{
cloud1_mc.stopDrag();
}