OVH Cloud OVH Cloud

[Flash MX] clearInterval

3 réponses
Avatar
Sabrina
Bonjour,
Je n'arrive pas à stoper ma fonction setInterval avec clearInterval. Voici
le code :

Sur mon image 2, je fais appelle à la fonction setInterval pour lancer un
son à deux temps précis.

stop();

//fonction pour lancer le premier son au bour de 10s
function attente(){
clearInterval(relance);
//variable déclarée à l'image précédente qui détermine si on a fait
appelle une fois à la fonction attente(1) ou pas (0)
repet1=1;
//on lance le son
son.attachSound("1ECImportFichier3bis");
son.onSoundComplete = function(){
//on change la fonction et l'intervalle
setInterval(attente1, 9000);}
son.start();
}

//fonction pour lancer le deuxième son au bour de 9s
function attente1(){
//on lance le son
son.attachSound("1ECImportFichier3_1");
son.onSoundComplete = function(){
// On arrête la fonction setInterval
clearInterval(relance);
//On passe à l'image suivante
nextFrame();
}
son.start();
}


//lancement de la fonction setInterval
if(repet1==0){
var relance;
relance = setInterval(attente, 10000);
}


A l'image suivante (image 3) :
stop();
clearInterval (relance);

mais là, le son "1ECImportFichier3_1" se répète même si je rajoute un
son.stop();
Je n'y comprend rien. Comment faut-il faire pour que le son ne se rèpéte pas
?

Merci de votre aide
Sabrina

3 réponses

Avatar
Jérôme Courivaud
Les identifiants avec setInterval sont pas faciles à utiliser

Il ne faut pas que tu instancies ta variable relance ou alors en dehors de
toutes fonctions ou toutes procédures.

//lancement de la fonction setInterval
if(repet1==0){
var relance; // SUPPRIME CETE LIGNE et ne met pas le var à la
ligne du dessous.
relance = setInterval(attente, 10000);
}

surtout quand tu changes ton interval, n'oublie pas de remettre ta variable
identifiant :

//fonction pour lancer le premier son au bour de 10s
function attente(){
clearInterval(relance);
//variable déclarée à l'image précédente qui détermine si on a fait
appelle une fois à la fonction attente(1) ou pas (0)
repet1=1;
//on lance le son
son.attachSound("1ECImportFichier3bis");
son.onSoundComplete = function(){
//on change la fonction et l'intervalle
setInterval(attente1, 9000);} // REMPLACE PAR
relance = setInterval(attente1, 9000);
son.start();
}

Je crois qu'avec ça ça devrait fonctionner.

voilà
Avatar
Sabrina
merci, je crois que ça marche mais par contre si je fais un bouton qui
retourne au début de mon anim, il reprend la fonction setInterval. Comment
ça se fait ?


"Jérôme Courivaud" a écrit dans le message de
news: bo5p7k$4ns$
Les identifiants avec setInterval sont pas faciles à utiliser

Il ne faut pas que tu instancies ta variable relance ou alors en dehors de
toutes fonctions ou toutes procédures.

//lancement de la fonction setInterval
if(repet1==0){
var relance; // SUPPRIME CETE LIGNE et ne met pas le var à la
ligne du dessous.
relance = setInterval(attente, 10000);
}

surtout quand tu changes ton interval, n'oublie pas de remettre ta


variable
identifiant :

//fonction pour lancer le premier son au bour de 10s
function attente(){
clearInterval(relance);
//variable déclarée à l'image précédente qui détermine si on a fait
appelle une fois à la fonction attente(1) ou pas (0)
repet1=1;
//on lance le son
son.attachSound("1ECImportFichier3bis");
son.onSoundComplete = function(){
//on change la fonction et l'intervalle
setInterval(attente1, 9000);} // REMPLACE PAR
relance = setInterval(attente1, 9000);
son.start();
}

Je crois qu'avec ça ça devrait fonctionner.

voilà




Avatar
Jérôme Courivaud
il faut qu'en début de cette image clef (sur laquelle tu retournes), il y
ait un clearInterval(relance);

voilà



"Sabrina" a écrit dans le message de
news:bo5pnv$5nl$
merci, je crois que ça marche mais par contre si je fais un bouton qui
retourne au début de mon anim, il reprend la fonction setInterval. Comment
ça se fait ?


"Jérôme Courivaud" a écrit dans le message de
news: bo5p7k$4ns$
> Les identifiants avec setInterval sont pas faciles à utiliser
>
> Il ne faut pas que tu instancies ta variable relance ou alors en dehors


de
> toutes fonctions ou toutes procédures.
>
> //lancement de la fonction setInterval
> if(repet1==0){
> var relance; // SUPPRIME CETE LIGNE et ne met pas le var à


la
> ligne du dessous.
> relance = setInterval(attente, 10000);
> }
>
> surtout quand tu changes ton interval, n'oublie pas de remettre ta
variable
> identifiant :
>
> //fonction pour lancer le premier son au bour de 10s
> function attente(){
> clearInterval(relance);
> //variable déclarée à l'image précédente qui détermine si on a fait
> appelle une fois à la fonction attente(1) ou pas (0)
> repet1=1;
> //on lance le son
> son.attachSound("1ECImportFichier3bis");
> son.onSoundComplete = function(){
> //on change la fonction et l'intervalle
> setInterval(attente1, 9000);} // REMPLACE


PAR
> relance = setInterval(attente1, 9000);
> son.start();
> }
>
> Je crois qu'avec ça ça devrait fonctionner.
>
> voilà
>
>