Stopper un setinterval lors d'un rollOver

Résolu
poiuytreza92 Messages postés 10 Date d'inscription mercredi 2 septembre 2009 Statut Membre Dernière intervention 12 juin 2010 - 8 janv. 2010 à 16:43
poiuytreza92 Messages postés 10 Date d'inscription mercredi 2 septembre 2009 Statut Membre Dernière intervention 12 juin 2010 - 9 janv. 2010 à 01:16
Bonjour à toutes et à tous ,
Je suis entrain de réaliser pour un site un menu où lorsque la souris est inactive durant 5 secondes le menu diparait j'ai appliqué la fonction setinterval + time out

voici mon code:
timeout = 5000;
once = true;

this.onmousemove = function(){
clearInterval(ID);
ID = setInterval(action, timeout);
trace("interaction");
if(once == false){
gotoAndStop(25);
once = true;
}
};

function action(){
clearInterval(ID);
trace("pas de mouvement durant 5 secondes");
if(once == true){
gotoAndPlay (60);
once = false;

}
};


Je souhaiterai lorsque ma souris effectue un roll over sur un bouton et que je ne touche plus la souris durant 5 secondes la fonction setinterval soit désactivé c'est à dire que le compte à rebours soit bloqué j'ai tenté plusieurs et divers codes avec clearIntervalID qui "tue" la fonction setime cad qu'elle s'enclenche qu'une seul fois je me prends la tête depuis 3 jours .


je souhaiterai savoir si il existe une solution
merci

5 réponses

poiuytreza92 Messages postés 10 Date d'inscription mercredi 2 septembre 2009 Statut Membre Dernière intervention 12 juin 2010
9 janv. 2010 à 01:16
Un énorme merci Pi'ère2

(dsl de te répondre si tard mais j'étais parti)

Mais je viens de trouver la solution il fallait tout simplement mettre clearInterval(ID) sur le rollover!

Merci pour tout je vais quand meme tester ton code
A+
3
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
8 janv. 2010 à 20:32
Bonsoir
Est-ce une erreur de saisie ? onmousemove au lieu de onMouseMove

Pour expérimenter le code ci-dessous il faut créer un bouton appelé bt et le mettre sur la scène;

Après on peut utiliser un this.onEnterFrame = function() (sans oublier de l'arrêter en fin d'action) pour déclencher ou autre chose...

th=this;

function suivresouris() {
xm = _xmouse;
ym = _xmouse;
trace("x="+xm+" y="+ym);
}

bt.onPress = function() {
trace("bouton cliqué");
tempo = setInterval(th, "suivresouris", 100);
ts = setInterval(th, "surveilleposition", 5000);
};


function surveilleposition() {
xs = _xmouse;
ys = _xmouse;
if (xm xs && ym ys) {
trace("fonction arrêtée");
clearInterval(tempo);
clearInterval(ts);
}
}

Pi'ère2
0
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
8 janv. 2010 à 20:35
Je suis à l'ouest; pour déclencher l'action il suffit d'utiliser onMouseMove.


Pi'ère2
0
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
8 janv. 2010 à 23:41
Bizarre je croyais avoir mis un complément:

je re poste.

th=this;

function suivresouris() {
xm = _xmouse;
ym = _xmouse;
trace("x="+xm+" y="+ym);
}

nd=0;
th.onMouseMove = function() {
nd++;
if(nd==1){
trace("fonction démarée");
tempo = setInterval(th, "suivresouris", 100);
ts = setInterval(th, "surveilleposition", 5000);
}
};


function surveilleposition() {
xs = _xmouse;
ys = _xmouse;
if (xm xs && ym ys) {
trace("fonction arrêtée");
clearInterval(tempo);
clearInterval(ts);
nd = 0;
}
}

Pi'ère2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
piere2 Messages postés 235 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 26 mai 2013
9 janv. 2010 à 00:03
Il est temps que j'aille me coucher.

Voilà le code qui fonctionne correctement:

th = this;

function suivresouris() {
xs = xm;
ys = ym;
xm = _xmouse;
ym = _xmouse;
trace("x="+xm+" y="+ym);
if (xm xs && ym ys) {
clearInterval(tempo);
ts = setInterval(th, "arretefonction", 1000);
}
}

nd = 0;
th.onMouseMove = function() {
nd++;
if (nd == 1) {
trace("fonction démarée");
tempo = setInterval(th, "suivresouris", 100);
}
};

na = 0;
function arretefonction() {
if (na == 5) {
trace("fonction arrêtée");
clearInterval(ts);
nd = 0;
na = 0;
} else {
trace("compte à rebours commencé");
na++;
}
}


Pi'ère2
0
Rejoignez-nous