ActionScript, ActionScript 2, Flash, Tutorials

Muovere un MovieClip lungo un path creato dinamicamente con Actionscript 2

Da tempo mi ero posto questo problema:

come muovere un movieclip lungo una guidapercorsopath che dir si voglia direttamente da actionscript?

Dovendo affrontare il problema per fini lavorativi ho scandagliato la rete finchè ho trovato una proto su layer51 del prode senocular.
“Problema risolto” direte voi, naaa. Ho tradotto la proto in una classe, niente di ch√®, ma cos√¨ facendo √® (a mio avviso) pi√π utilizzabile.

Intanto scaricatevi la classe

Ok, come si usa?

importo la classe e creo un percorso con le funzioni che emulano le api

import it.utils.Path;
var myPath:Path = new Path(0,0);
//parto da x=0 e y=0
myPath.lineTo(100,0);//creo una linea retta

myPath.circleCWTo(100,100,0.5);

//creo una curva in senso orario (ClockWise).

//il terzo valore oscilla tra 0 e 1
//e stabilisce l'ampiezza della curva

myPath.lineTo(0,100);

myPath.circleCCWTo(0,0,0.5);

//torno al punto di partenza con una

//curva creata in senso antiorario

ok, adesso guardiamo il nostro percorso disegnandolo su un mc con la funzione draw

var percorso:MovieClip = this.createEmptyMovieClip("path_container",0);
percorso.lineStyle(0,0x000000,100);

//imposto la linea con la quale sarà disegnato il percorso

myPath.draw(percorso);

bello no?

ora da flash creiamo un nuovo simbolo movieclip, disegnamoci un pacman con la bocca verso l’alto, lo chiamer√≤ “pacman” user√≤ lo stesso nome per il concatenamento.

tornando allo script….
facciamo girare il pacman sul percorso disegnato precedentemente:

var pac:MovieClip = this.attachMovie("pacman","pacman",1);
var traverse_perc:Number=0;

pac.onEnterFrame = function(){

myPath.traverse(pac,traverse_perc%100/100, true);

/*

traverse è il metodo di Path

che permette di muoversi attraverso il path creato,

gli si passano 3 parametri: il mc che deve muoversi,

il punto di destinazione del mc (compreso tra 0 e 1,

dove 0 è l'inizio e 1 la fine), un valore booleano che

indica se orientare il clip alla direzione del percorso

o meno (in questo caso il nostro pacman seguirà la

direzione del path con la bocca)*/

traverse_perc++;

}

Presto pubblicher√≤ anche un fla con degli esempi pratici…stay tuned 😀

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s