etterolf
Messages postés1Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention19 avril 2008
-
19 avril 2008 à 14:00
stefbuet
Messages postés576Date d'inscriptionmercredi 5 janvier 2005StatutMembreDernière intervention12 mai 2009
-
19 avril 2008 à 23:02
Bonjour à tous,
Comment faire pour arréter totalement l'exécution de la fonction aprés 4 exécutions ? il semble que delete(mafonction); ne suffise pas totalement car si avec trace je vosi bien 4 exécutions seulement, mon clip "monclip" continue à se promener sur le segment [ab] défini aprés les 4 exécutions demandées, à une vitesse et une fréquence non indiquée dans le script.....
ps : je suis totalement autodidacte et débutante, merci d'avoir la gentillesse de bien expliquer vos conseils.....pour rectifier le code ci après placé sur une image de ma scène :
//on positionne le clip "monclip" au départ sur la scène
monclip._x = -55;
monclip._y = -122;
x1 = -55; //abcisse et ordonnee point départ segment [ab]
y1 = -122;
x2 = -55; //itou pour le point arrivée du segment
y2 = -10;
//On définit la fonction "barycentre"
barycentre = function(a, b, t) {
return (1 - t)*a + t*b;
}
//On initialise deux variables :
//dt permettra de faire varier la vitesse de déplacement du clip "monclip"
//et t est un paramètre qui varie entre 0 et 1.
dt = 1/25;
t = 0;
//on dessine le segment [ab] en gris pale si on veut
this.lineStyle(0, 0x666666, 100);
this.moveTo(x1, y1);
this.lineTo(x2, y2);
//deux variable pour arret fonction
var nIntervalId:Number = setInterval(mafonction, 100);
var compteur:Number = 0;
compteur++;
// A chaque image de la scène principale appel fonction...
onEnterFrame = function() {
mafonction = function() {
//trace pour avoir les valeurs du compteur en sortie
trace(compteur);
//On ajoute la quantité dt à la variable t.
t += dt;
//L'abscisse du clip "monclip" est le barycentre des abscisses
monclip._x = barycentre(x1, x2, t);
//L'ordonnée du clip "monclip" est le barycentre des abscisses
monclip._y = barycentre(y1, y2, t);
//On regarde que t varie et reste bien compris entre 0 et 1.if(t >1) {t 1; dt *= - 1;} else {
if(t <=0) {t = 0; dt *= - 1;}else {
// Ici, on va arreter l'exécution de la fonction après 4 lancementsif (compteur < 4) {monclip._x -55; monclip._y -122;} else{if(compteur 4) {clearInterval(nIntervalId); monclip._x -55; monclip._y = -10; delete(mafonction);}
}
}
}
}