Double click >>> simple, rapide, efficace

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 381 fois - Téléchargée 28 fois

Contenu du snippet

Voici un petit script qui permet d'évaluer si un bouton "btn" a été double cliqué, en précisant l'intervalle maximum entr les deux clicks

Source / Exemple :


// par defaut, le premier click est forcement un simple click ( c a dire pas un double click )
global_firstclick=true;
// on met l'intervalle a 200 millisecs
latence=200;

function deleteclick(){
	global_firstclick=true;
	clearInterval(global_click_interval);
}
function eval_double_click(){
	if (global_firstclick){
		global_firstclick=false;
		global_click_interval=setInterval(this,"deleteclick",latence);
		return(false);
	}
	else {	
                deleteclick();
		return(true);

	}
}
btn.onPress=function(){
	if(eval_double_click())trace("double click OK");
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
26
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
27 septembre 2006

wé, g vu :->
je parlais juste pour top30,le sien il le fé pas
Et pis je préfere un clique de bouton qu' un hitTest..
" ça laisse les events mouse du clip libres" ...
Ben c pa grave, je trouve, de toute façon le clip que je veux créer n'aura que le double clique comme role dans sa vie, je vais pas lui créer mille fonctions par clique.
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Et bien dans l'avant dernier message que j'ai poster le code le fait aussi, essai tu verra.
Pas encore tester le code de Top30

Blacknight
Messages postés
26
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
27 septembre 2006

g mis 500ms pour bieeeeen voir ce qui se passe
Messages postés
26
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
27 septembre 2006

hum, bravo... super code...
Mais je vais vous taper sur les doigs, j'ai dit,
MON CODE RECONNAIT LE DOUBLE CLIQUE ET NON LE TRIPLE CLIQUE.

c à d que le 3 eme clique redevient un siple click, et on voit pas "DoubleClick effectué " qui saute à la figure.

J'ai donc rajouté la variable
firstclick à ton truc (et g enlevé aussi l'alerte "simpleclick" qui était un peu enervant:



new DoubleClick ( unClip, 500 ) ;

unClip.onDoubleClick = function( time )
{
trace ( "DoubleClick effectué en " + time + " ms" ) ;
}
//
function DoubleClick ( mc, delay )
{
var o = {} ;
o.onMouseDown = function ()
{
if ( mc.hitTest(_root._xmouse,_root._ymouse,true) )
{
this.time = getTimer() ;
this.delay = this.time-this.reset ;
//
if(( this.delay < delay )and !this.firstclick){
mc['onDoubleClick']( this.delay ) ;
this.firstclick=true;
}
else this.firstclick=false;
//
this.reset = getTimer() ;
}
}
Mouse.addListener( o ) ;
}
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

Sur une scene vous mettez un clip appellé "unClip". Puis dans la frame 1 ceci :
//
new DoubleClick ( unClip, 250 ) ;
//
unClip.onMouseDown = function( time )
{
trace ( "Simple onMouseDown" ) ;
}

unClip.onDoubleClick = function( time )
{
trace ( "DoubleClick effectué en " + time + " ms" ) ;
}
//
function DoubleClick ( mc, delay )
{
var o = {} ;
o.onMouseDown = function ()
{
if ( mc.hitTest(_root._xmouse,_root._ymouse,true) )
{
this.time = getTimer() ;
this.delay = this.time-this.reset ;
//
if( this.delay < delay ) mc['onDoubleClick']( this.delay ) ;
//
this.reset = getTimer() ;
}
}
Mouse.addListener( o ) ;
}

C'est tout !!!
Pas d'interval, pas de onRelease, et ca laisse les events Mouse du clip libres...
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.