Bonjour,
j'utilise la fonction suivante(récupérée sur le net) :elle retourne un tableau de points formant une ellipse servant de trajectoire pour un jeu de balles
function creTablePoints (cx, cy, xRad, yRad, max) {
points = new Array();
var space = 360/max;
for (var i = 0; i<max; i++) {
var theta = space*i;
theta %= 360;
var radians = (theta/180)*Math.PI;
this.x = cx+Math.cos(radians)*xRad;
this.y = cy+Math.sin(radians)*yRad;
this.points[i] = new Array();
points[i]["x"] = x;
points[i]["y"] = y;
}
return points;
}
la ligne suivante permet de récupérer ce tableau,
pts1 = this.creTablePoints(450, 250, 300, 300, 80);//80 pts pour la bal 1
pts2 = this.creTablePoints(450, 250, 200, 200, 60);//60 pts pour la bal 2
et ainsi de suite pour ttes les balles qu'on veut. Pour animer la balle, je fais appel à la fonction suivante :
cpt=0;
function deplaceBalle1(): Void {
this._x = pts1[cpt%80]["x"];// modulo 80 pour 8O pts
this._y = pts1[cpt%80]["y"];
cpt++;
if(cpt>600) {
delete this.onEnterFrame;
}
}
puis cette fonction est appelé avec onEnterFrame : balle1.onEnterFrame=deplaceBalle1;
Mon problème est que je n'arrive pas à réutiliser cette fonction plusieurs fois (j'ai essayé en passant le paramètre tableau en créant la fonction suivante
function deplaceBalle(pts:Array): Void {
this._x = pts[cpt%80]["x"];
this._y = pts[cpt%80]["y"];
cpt++;
if(cpt>600) {
delete this.onEnterFrame;
}
}
et cré chaque trajectoire en passant les tableaux : pts1, pts2,pts3, etc...
balle1.onEnterFrame=deplaceBalle(pts1);
balle2.onEnterFrame=deplaceBalle(pts2);
ça ne marche pas....
mais pour que ça marche (avec 2 balles) je suis obligé d'écrire une fonction par balle, ex pour la balle 2 :
function deplaceBalle2(): Void {
this._x = pts2[cpt%80]["x"];
this._y = pts2[cpt%80]["y"];
cpt++;
if(cpt>600) {
delete this.onEnterFrame;
}
}
balle2.onEnterFrame=deplaceBalle2;
et ainsi de suite pour chaque balle.
les balles sont des clips simples (cercle convertit en clip) positonnés sur la scène. je dois mal m'y prendre, c'est un peu confus, j'aurais bien joint le fichier .fla en pièce joint mais je ne sais pas si on peut...
Merci de m'éclairer, ...