- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- [Risolto] Doppio click con action script
-
[Risolto] Doppio click con action script
Sto cercando di fare uno script x gestire un doppio click.
la logica è questa:
alla prima cliccata si avvia un timer, se dopo 200ms non viene effettuato l altro click, tutto si resetta e parte dall inizio, altrimenti, "doppio click avvenuto"...
ma non va ... più precisamente lo script non effettua l intervallo "torna"....
here u are the script..onClipEvent(load)
{clic=0;}
on(release)
{ if(clic == 1)
{trace("doppio click avvenuto");
}
if (clic==0)
{ clic=1;torna = setInterval(torno,200); function torno() {clic=0; clearInterval(torna); trace("entro");}}}
help meeeeeeeeeeeee
-
Ciao
Non scrivere codice sui bottoni:)
Questo è lo script che ti ho scritto:
var click:Boolean=false; var timer:Number=0; var timer2:Number=0; mio_mc.onPress=function() { if(!click) { timer=getTimer()/1000; click=true; } else { timer2=getTimer()/1000; this.test2=timer2-timer; if((timer2-timer)<.25) trace('doppio click'); else { timer=getTimer()/1000; click=true; } } };
-
getTimer????
ma c è nell 8??e cmq vorrei capire xke non entrava in quell intervallo...x capire...
-
getTimer c'è nella versione 8 .
Il perchè il tuo codice non funziona ?
Perchè la variabile clic è una variabile locale, per cui vale solo all' interno dell' evento, poi viene rimossa dalla memoria.
Dovresti crearla sulla root e richiamarla _root.clic
Ecco perchè ti sconsiglio di scrivere codice sulle MovieClip, scrivi sulla timeline...risulta anche molto più semplice per gli apprendisti
-
allora questo dovrebbe andare bene se lo metto nel root?
_root.mc.onLoad = function()
{clic=0;}
_root.mc.onRelease= function()
{ if(clic == 1)
{trace("doppio click avvenuto");
}
if (clic==0)
{ clic=1;
torna = setInterval(torno,200);
function torno()
{clic=0;
clearInterval(torna);
trace("entro");}}}
-
no non mi hai capito.
La variabile clic la devi dichiarare nella root.
Nel primo keyframe della root scrivi:
var clic:Number=0;poi per richiamarla:
onClipEvent(load)
{_root.clic=0;}e comunque se hai più di un keyframe, anche se la scrivi nel primo keyframe la variabile rimarrebbe locale in quanto al successivo keyframe Flash la cancella e ne libera memoria.
-
volendo il tuo codice si può un pò semplificare così:
var timer:Number=0;
var timer2:Number=0;
mio_mc.onPress=function()
{timer2=getTimer()/1000;
this.test2=timer2-timer;
if((timer2-timer)<.25)
trace('doppio click');
else
{ timer=getTimer()/1000;
click=true;
}
}Cmq ok grazie 1000 risolto...