Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 2015
-
22 mars 2006 à 22:30
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006
-
30 mars 2006 à 09:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 30 mars 2006 à 09:50
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.
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 30 mars 2006 à 07:55
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
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 29 mars 2006 à 22:40
g mis 500ms pour bieeeeen voir ce qui se passe
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 29 mars 2006 à 22:40
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 ) ;
}
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 27 mars 2006 à 21:15
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...
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 26 mars 2006 à 22:36
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
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 26 mars 2006 à 20:42
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 )
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 26 mars 2006 à 13:23
Allez, il é bien mon code! lol je v pa lacher l'affaire
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 26 mars 2006 à 13:20
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
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 26 mars 2006 à 13:05
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
manoloz
Messages postés26Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention27 septembre 2006 26 mars 2006 à 12:40
>>>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
iceage
Messages postés7Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention11 mai 2007 24 mars 2006 à 10:34
Je cherchais justement un code simple et efficase pour le double clic...
ice
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 22 mars 2006 à 22:34
Oui, j'oubliais aussi l'optimisation du code...
Pas trop fait attention...xD
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 22 mars 2006 à 22:33
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....=]
cs_bali_balo
Messages postés1378Date d'inscriptionsamedi 9 octobre 2004StatutMembreDernière intervention 1 novembre 20101 22 mars 2006 à 22:33
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....=]
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 22 mars 2006 à 22:30
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();
}
30 mars 2006 à 09:50
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.
30 mars 2006 à 07:55
Pas encore tester le code de Top30
Blacknight
29 mars 2006 à 22:40
29 mars 2006 à 22:40
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 ) ;
}
27 mars 2006 à 21:15
//
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...
26 mars 2006 à 22:36
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
26 mars 2006 à 20:42
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....=]
26 mars 2006 à 17:48
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 ?
26 mars 2006 à 13:23
26 mars 2006 à 13:20
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
26 mars 2006 à 13:05
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
26 mars 2006 à 12:40
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
24 mars 2006 à 10:34
ice
22 mars 2006 à 22:34
Pas trop fait attention...xD
22 mars 2006 à 22:33
J'ai plein de ptites astuces que j'aimerais partager avec les autres développeur.
Original comme idée.
bali_balo....=]
22 mars 2006 à 22:33
J'ai plein de ptites astuces que j'aimerais partager avec les autres développeur.
Original comme idée.
bali_balo....=]
22 mars 2006 à 22:30
frame 1 :
Interval = 200;
bouton :
on(press) {
if (getTimer() < time+Interval) {
trace("double click");
}
time = getTimer();
}
J'ai tester, aucun problème.
Blacknight