:::::: mxPrototypes ::::::

Retour à l'accueil (site en flash) :::: Retour à l'accueil (site en html ) :::: ajouter aux favoris

fonction waypoints() pou déplacer un movieclip le long d'une trajectoire

Attention, la fonction 'regularTo(x,y,nbFrames)' est requise pour ce script, c'est elle qui se charge de déplacer le movieclip.

Voyons tout d'abord ce que doit faire notre fonction:
Dans un tableau sont stockés des points, un point étant un élément de la sorte:
 {x:100 , y:150} 
On déclarera le tableau de waypoints de la façon suivante:
monMovieClip.points = [{x:100 , y:350} ,{x:200 , y:50} ,{x:300 , y:350} ,{x:400 , y:50} ];
Le premier point du tableau est celui que le movieClip va chercher à rejoindre, on peut ainsi ralonger la trajectoire en ajoutant d'autres points en fin de tableau.

Donc, le premier point est toujours la cible du movieClip.
b Ensuite, il faut qu'au moment où le movieClip atteint ce point, ce dernier soit effacé et tous les points du tableau décalés, le second devenant premier etc...
Ainsi, on ne s'occupe que de déplacer en boucle le movieClip vers le premier point.
Et c'est pour cette raison que l'on a besoin de la fonction 'regularTo()', puisque c'est elle qui se chargera de déplacer le movieClip.

On se sert de la variable 'go' dont on a parlé dans le tutorial 'regularTo'.
Cele-ci vaut précisement 'false' si le point est arrivé à sa destination !
C'est alors qu'il faut proceder aux opérations sur le tableau de points:
on inverse le tableau, puis on supprime la dernière valeur, puis on l'inverse à nouveau.
Finalement, on a supprimé la première valeur, et décalé les autres valeurs.
Enfin, on indique par 'this.go=null' qu'il faut à nouveau déplacer le movieClip, mais cette fois vers sa nouvelle destination.

Regardez un exemple ici.
movieClip.prototype.waypoints = function(){
	if(this.go==false)
	{
		this.points.reverse();
		this.points.pop();
		this.points.reverse();
		this.go=null;
	}
	this.regularTo(this.points[0].x,this.points[0].y,30);
}

.

.Commentaires:

damien:
laissez vos commentaires ici !
damien:
en préparation, un script (assez difficile) pour trouver une trajectoire courbe passant pas les waypoints !
ekameleon:
On va pouvoir remplacer le guide de mouvement de flash avec ton proto :)
damien:
avec des points très rapprochés, on peut arriver à des trajectoires irréalisables avec une équation parametrée, ça peut être utile
Gillus:
Extra!...ce qui serait également interressant c'est d'arriver à combiner le proto Slowdown avec celui-ci sur toute la durée de la trajectoire... ;)
damien:
c'est plus difficile mais je suis en train de voir ça ;) Le truc facile c'est de le faire pour chaque petite trajectoire
righton:
je suis très interessé par les waypoints avec trajectoires courbes... c'est pour quand ? :-)
scorpus:
c'est bien ce que tu fais mais des explications détaillées , un code exemple serait un plus. Car avec des prototypes on ne s'en sort pas ou dans ce cas ce n'est plus un tutoriiel
lutaseb:
Pour un non matheux comme moi...c est super de trouver des scripts comme ça mais l idéal serait les comprendre aussi :)). J ai vu des ites affichant les formules de courbe c est incompréhensible!!
tony:
ca marche encore avec flash 9 ou comment faire pour ?