begin process at 2012 05 26 04:07:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > DOUBLE CLICK >>> SIMPLE, RAPIDE, EFFICACE

DOUBLE CLICK >>> SIMPLE, RAPIDE, EFFICACE


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :souris, doubleclick, double, bouton, click Niveau :Initié Date de création :22/03/2006 Date de mise à jour :22/03/2006 11:29:17 Vu :7 489

Auteur : manoloz

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

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

  • // 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");
  • }
// 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");
}



 Historique

22 mars 2006 11:26:32 :
J'ai juste raccourci le titre lol, y'avait des mots trop redondants, et c'était trop long pour un code sensé etre simple
22 mars 2006 11:29:17 :
Oups, derniere erreur de programmation, javais mis des lignes de codes APRES return(), ce qui est inutile

 Sources du même auteur

ALGORITHE REMPLACEMENT DE CARACTERES
MOTEUR DE RECHERCHE
REDIMENSIONNER UNE IMAGE EN CONSERVANT LES PROPORTIONS
GENERATEUR DE COMMENTAIRES

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PHP COUNTER EVOLUTION par top30
Source avec Zip Source avec une capture TOURNER UN OBJEC VERS LA SOURIS... par top30
Source avec Zip SUPER TWEEN PACKAGE par Acidchlorhydrik
Source avec Zip LABYRINTHE SOURIS par super mariol
Source avec Zip Source avec une capture DOUBLE CLIC SUR UN BOUTON par Orange73

Commentaires et avis

Commentaire de Blacknight91titi le 22/03/2006 22:30:03

Je pense que tu t'embète pour rien :
frame 1 :
Interval = 200;
bouton :
on(press) {
  if (getTimer() < time+Interval) {
    trace("double click");
  }
  time = getTimer();
}

J'ai tester, aucun problème.

Blacknight

Commentaire de bali_balo le 22/03/2006 22:33:43

Je crois que met futures sources vont plus être orientées 'astuces' que super grosses application!

J'ai plein de ptites astuces que j'aimerais partager avec les autres développeur.

Original comme idée.


bali_balo....=]

Commentaire de bali_balo le 22/03/2006 22:33:51

Je crois que mes futures sources vont plus être orientées 'astuces' que super grosses application!

J'ai plein de ptites astuces que j'aimerais partager avec les autres développeur.

Original comme idée.


bali_balo....=]

Commentaire de bali_balo le 22/03/2006 22:34:52

Oui, j'oubliais aussi l'optimisation du code...
Pas trop fait attention...xD

Commentaire de iceage le 24/03/2006 10:34:40


Je cherchais justement un code simple et efficase pour le double clic...

ice

Commentaire de manoloz le 26/03/2006 12:40:33

>>>hé , Blacknight91titi, g pas testé mais ça m'a lair très logique ton code, ça devrait marcher.

C juste que, ce que j'aime pas dans le getTimer() c qu'il va prendre des valeurs de plus en plus grandes, lorsque l'utilisateur est sur l'animation depuis longtemps.
Bon, si ça prend pas plus de ressources que le setInterval()...
( + clearInterval :-p en plus ! hehe)
EN passant, j'ai sorti ce code car j'en ai vu un autre qui a fait pire, son programme prend 2 pages, c sur flashkod en plus

Commentaire de Blacknight91titi le 26/03/2006 13:05:55

Non sa ralentira pas si le getTimer grandit, en tout cas sa ne se vera pas, les processeurs actuel sont bien assez puissant pour sa.

Juste que mon code est tout de même un peu plus cours et y a besoin que de deux variables

Simple, rapide, efficace ;)

Blacknight

Commentaire de manoloz le 26/03/2006 13:20:23

huhu, il y'a un cas que je n'ai pas dit, mais qui est important, et que j'ai traité dans mon code.

J'ai utilisé setInterval et ClearInterval, car il permet de stopper la "surveillance" de l'arrivée dun 2è click..
pour etre plus clair, mon code gere le double clique, et j'ai fait gaffe à ce qu'il ne voie pas le TRIPLE CLIQUE, ni le quatruple, etc...

Si je comprends bien ton code:
on(press) {
  if (getTimer() < time+Interval) {
    trace("double click");
  }
  time = getTimer();
}
il suffit qu'apres le 2è clique, j'appuie encore une fois assez vite ( <200ms) et il va encore me sortir que c'est un "double click"

La variable global_firstclick dans mon code permet d'annuler le chrono si un 2è clique a été fait.
Sinon, j'aurais fait un code bien plus court, meme avec SetInterval

Commentaire de manoloz le 26/03/2006 13:23:23

Allez, il é bien mon code! lol je v pa lacher l'affaire

Commentaire de Blacknight91titi le 26/03/2006 17:48:16

Bin regarde (quelques lignes de plus) :

frame 1 :
Interval = 200;
bouton :
on(press) {
  if (getTimer() < time+Interval && verif) {
     trace("double click");
     verif = false;
  } else {
     verif = true
  }
  time = getTimer();
}

C'est mieux la ?

Commentaire de bali_balo le 26/03/2006 20:42:18

Tu oublis d'initialiser tes variables blacknight91titi...( enfin je sais que c'est trivial, mais il y en a qui ont du écrire ton code sans en prendre compte )


frame 1 :
Interval = 200;
time = 0;
verif = false;

code bouton :
on(press) {
  if (getTimer() < time+Interval && verif) {
     trace("double click");
     verif = false;
  } else {
     verif = true
  }
  time = getTimer();
}


bali_balo....=]

Commentaire de Blacknight91titi le 26/03/2006 22:36:46

Oui je sais bien, mais pour la variable verif ce n'est pas nécéssaire, vu qu'elle n'est pas déclaré avant elle est déja sur false par défaut.
Ensuite pour time ce n'est pas non plus important puisqu'elle est définit après.
La condition juste avant ?
Et bien vu qu'il s'agit forcement du premer clic il n'y a pas besoin de la définir, la condition renvera forcement false la première fois, et la variable est définit après donc pas de soucis.
Sa fait 2 lignes de moin ;)
Merci quand même pour ta corection Bali_Balo (même s'il elle n'est pas vrament nécéssaire)

Blacknight

Commentaire de top30 le 27/03/2006 21:15:27

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...

Commentaire de manoloz le 29/03/2006 22:40:00

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 ) ;
}

Commentaire de manoloz le 29/03/2006 22:40:51

g mis 500ms pour bieeeeen voir ce qui se passe

Commentaire de Blacknight91titi le 30/03/2006 07:55:57

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

Commentaire de manoloz le 30/03/2006 09:50:51

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème de lien avec les boutons [ par DJag ] ---&gt;DJag&lt;---DébutantJe n'arrive pas faire que quand on click sur un bouton il lance une url. Clip et le click&double click [ par fab30 ] Un gros problème : j'aimerais associé un événement au click de la souris sur un clip et un autre sur le double click sur le meme clip. seulement, je n RollOver + Texte défilant [ par lulociel ] Bonjour,Je souhaite faire défiler un texte quand on passe la souris sur celui-ci (ou sur un bouton).j' ai essayé avec un bouton et onRollOver mais je Bouton + Clip [ par didine84 ] Je suis débutante... vous allez comprendre très vite pouquoi.Voilà, j'ai créer un symbole &gt;&gt; bouton.Dans la case "haut" j'ai inséré une image et Techniques de coordination bouton-animation [ par khantic ] Je débute en flash. Je cherche à comprendre les différentes techniques que l'on peut utilisé sour FlashMX pour associer à un click sur un bouton le dé Effet de fusion d'image au passage de la souris sur un bouton [ par galaxiae ] Bonjour à tous!Actuellement je travaille sur le développement d'un site interactif et je me retrouve embêté car je n'arrive pas à réaliser un effet pa bouton et clip (débutant) [ par phm666 ] bonjour je cherche à faire jouer un clip d'animation par exemple lorsque je passe ma souris sur un bouton.J'insère donc un clip dans l'image "dessus", interagir avec le défilement d'images via la souris [ par thepulp ] Bonjour à tous !J'ai beau compulser frénétiquement les messages du forum, je ne trouve pas de réponse à ma question...Peut-être pourrez-vous me venir calque deroulant lors d'un click sur bouton [ par smile933 ] Bonjour,J'ai actuellement un menu composé de bouton flash qui lors que l'on click dessus fais apparaitre un calque avec les sujet de mon site dessus.( bouton non actif [ par tier ] Bonjourje viens de creer 2 images de bouton de lecture: 1 pour l'etat norm, l'autre pour quand la souris passe dessus.je souhaiterais que ce bouton so


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales