Просмотр полной версии : двойной щелчок
что нужно написать чтобы событие приходило по двойному щелчку а не по одному нажатию
После первого щелчка пусть включается таймер,допустим на пол секунды.и за это время отлавливай ещё одно
Aziz Zaynutdinoff
27.06.2007, 12:08
Как один из вариантов можно так (http://zaynutdinoff.livejournal.com/4854.html)
А вообще – тема обсуждалась неоднократно и очень подробно.
Примерно так:
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 и таймауты?
Kikasso, а что будет, если я нажму три раза и между ними будет меньше, чем полсекунды?)
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,
если обратишь внимание – писал за день до нового года :)
ну и потом: работает и ладно, поскольку надобности не было – переписывать не стал...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.