è un argomento un po' oscuro
per quanto mi riguarda, tempo fà ho creato una proto che funzionava benino, per i rallentamenti/molleggiamenti
l'avevo già postata mi pare :master:
codice:
MovieClip.prototype.myTween = function(clip, xArr, yArr, frames){
clip.xArr = Math.floor(xArr);
clip.yArr = Math.floor(yArr);
clip.frames = Number(frames);
this.onEnterFrame = function(){
if(Math.floor(clip._x) != clip.xArr && Math.floor(clip._y) != clip.yArr){
xspost = (clip.xArr-clip._x)/frames;
yspost = (clip.yArr-clip._y)/frames;
clip._x += xspost;
clip._y += yspost;
} else {
delete this.onEnterFrame;
clip._x = clip.xArr;
clip._y = clip.yArr;
}
}
}
_root.palla.myTween(_root.palla, _root._xmouse, _root._ymouse, 8);
tutta la parte sotto la proto è solo per verificare che funzioni, in realtà le azioni vengono svolte totalmente dalla proto e non dal resto del codice
la proto può essere richiamata in un qualunque momento, in qualunque "attività"
ad esempio metti che io abbia un pulsante "puls" e il solito clip "palla" a coordinate 0,0 nello stage, se faccio
codice:
puls.onRelease = function(){
_root.palla.myTween(_root.palla, 400, 300, 8);
}
avrò che quando clicco sul pulsante, il mio clip si muove a coordinate 400,300
ah, per quanto riguarda la fluidità del movimento, dipende da due fattori, uno è "frames" e lo puoi cambiare a piacimento fino ad un minimo (perchè tutto funzioni) di 0.56 (movimento elastico), l'altro fattore da non sottovalutare è il framerate del filmato, io di solito lo tengo a 60fps e i movimenti risultano fluidi senza grosso dispendio di cpu