PDA

Просмотр полной версии : двойной щелчок


K!ska
27.06.2007, 11:18
что нужно написать чтобы событие приходило по двойному щелчку а не по одному нажатию

Haiat
27.06.2007, 11:54
После первого щелчка пусть включается таймер,допустим на пол секунды.и за это время отлавливай ещё одно

Aziz Zaynutdinoff
27.06.2007, 12:08
Как один из вариантов можно так (http://zaynutdinoff.livejournal.com/4854.html)

А вообще – тема обсуждалась неоднократно и очень подробно.

Kikasso
27.06.2007, 12:10
Примерно так:
function dblClick(){ trace('YES'); }
var lastPressed:Number = 0;
var deltaT:Number = 500; //полсекунды
btn.onPress = function(){
var t:Number = getTimer();
if(t - lastPressed < deltaT )dblClick();
lastPressed = t;
}
Aziz, на фиг там Delegate и таймауты?

iNils
27.06.2007, 12:31
Kikasso, а что будет, если я нажму три раза и между ними будет меньше, чем полсекунды?)

Kikasso
27.06.2007, 12:43
Kikasso, а что будет, если я нажму три раза и между ними будет меньше, чем полсекунды?)
В данном случае - два 'YES'.
Ну можно lastPressed обнулить после второго щелчка, если настаиваете.
function dblClick(){
lastPressed = 0;
trace('YES, deltaT =' + Math.floor(deltaT));
deltaT *= .9; //шутка
}
var lastPressed:Number = 0;
var deltaT:Number = 500; //полсекунды
btn.onPress = function(){
var t:Number = getTimer();
if(t - lastPressed < deltaT )dblClick();
else lastPressed = t;
}
У меня получилось 'YES, deltaT =75'. Быстрее, увы, никак.
upd: переложил палец и получил 67.

Aziz Zaynutdinoff
27.06.2007, 16:32
Kikasso,
если обратишь внимание – писал за день до нового года :)
ну и потом: работает и ладно, поскольку надобности не было – переписывать не стал...