Pb d' arret d'une fonction apres 4 exécutions

etterolf Messages postés 1 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 19 avril 2008 - 19 avril 2008 à 14:00
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 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);}
}
}
}
}

merci à tous de vos lumières...
FL rette

1 réponse

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
19 avril 2008 à 23:02
Salut,

delete n'est pas une fonction.

delete mafonction;

@+
0
Rejoignez-nous