Ciao gente. Questo discorso nasce dal fatto che per molto tempo mi sono scritto da solo le funzioni per leasing delle clip (movineti elastici, uniformemente accellerati etc etc.). Solo che ovviamente non erano perfette (dato che in matematica avevo appena appena 6 al liceo classico, il che è tutto dire
) così ho cercati in giro se per caso non vi fosse qualcosa di meglio ed ho scoperto che flash MX 2004 ha buil it alcune classi per il movimeto delle clip.
Dato che non sono documentate ho pensato di parlarvene, con un semplice esempio. Siccome io non le avevo mai usate, magari mi sbalgio ed allora uccidetemi (o magari correggetemi che così imparo
)
la classe "Tween", almeno nella mia configurazione di sistema si trova qui "C:\Program Files\Macromedia\Flash MX 2004\en\First Run\Classes\mx\transitions\Tween.as"
la sintassi per instanziare un nuovo ogetto Tween è questa:
codice:
mioMovimento = new mx.transitions.Tween(cheClip, qualeProprieta, tipo, inizio, fine, durata, cheMetro);
In questo caso i parametri rappresentano:
cheClip -> il riferimento all'istanza che voglio spostare
qualeProprieta -> mi dice quale proprietà della clip voglio modificare (_x, _y, _xscle, _yscale etc. etc.)
tipo -> indica il tipo di funzione easing che si vuole usare
inizio -> il punto di partenza a cui si trova la proprietà della clip prima di modificarla
fine -> il punto a cui volgio arrivare alla fine dle movimento
durata -> il tempo che si vuole impiegare per compiere il movimento
cheMetro -> true se si vogliono usare i secondi come metro per il tempo oppure flase se si vogliono utilizzare i fare. di default è false.
Le funzioni di easing disponibili sono le seguenti:
codice:
Back
Bounce
Elastic
None
Regular
Strong
mentre le direzioni sono le seguenti:
codice:
easeIn
easeOut
easeInOut
easeNone
il terzo parametro per il costruttore è il tipo di easing che si vuole applicare. questo viene definito dalla somma delle funzioni e delle direzioni (anche se non sono sicuro che si chiamino così). ad esempio un tipo di easing potrebbe essere definito così:
codice:
tipoEasing = mx.transitions.easing.Elastic.easeOut;
che mi produrrebbe un movimento elastico con accellerazione uniforme.
infine, per fare un esempio concreto potremmo creare una cosa del genere:
codice:
//SULLO STAGE HO DUE CLIP UNA CHIAMATA miaClip a 0,0,
//L'ALTRA CHIAMATA bottone dove vi pare (CHE FANTASIA :))
function easeIt(mc, inizio, fine, tempo) {
tipo = mx.transitions.easing.Elastic.easeOut;
muovi = new mx.transitions.Tween(mc, "_x", tipo, inizio, fine, tempo, true);
}
//e poi
bottone.onRelease = function(){
_root.easeIt("miaClip", miaClip._x, 30, 1);
}
dovrebbe funzionare. se qualcuno ne sa di più , per favore aggiungete tutto quello che potete perchè l'argomento mi interessa