2 способами пытался реализовать и ни один не работает. Не могу понять почему.
1 способ:
//чтобы не париться с микросекундами таймаут на двойное нажатие 2 секунды, а на повторный вызов скрипта 3 секунды
if ($this->getProperty('Dubble') == 1) // признак необработанного недавнего нажатия
{
$interval = time() - $this->getProperty('TimeSwitch');
$this->setProperty('TimeSwitch', time());
if ($interval < 2) //двойной клик
{
file_get_contents("http://192.168.1.201/sec/?cmd=8:2"); //выполняем действие
$this->setProperty('Dubble',0); //нажатие обработано
}
else //значит скрипт запустился по таймеру
{
file_get_contents("http://192.168.1.201/sec/?cmd=7:2"); //выполняем действие
$this->setProperty('Dubble',0); //нажатие обработано
}
}
else //первое нажатие
{ //запоминаем время, выжидаем таймаут, запускаем скрипт, ставим признак необработанного нажатия
$this->setProperty('TimeSwitch', time());
ClearTimeOut("DubbleClickT");
SetTimeOut("DubbleClickT","callMethod('Sw2_4_2.DubbleClick');",3);
$this->setProperty('Dubble',1);
}
{
$this->setProperty('Dubble',1); //установим признак необработанного нажатия
usleep(700000); //спим 0,7 секунды
if ($this->getProperty('Dubble') == 1) //если за это время нажатие не обработали
{
file_get_contents("http://192.168.1.201/sec/?cmd=7:2"); //выполним действие
$this->setProperty('Dubble',0); //нажатие обработано
}
}
else //пока скрипт спит повторное нажатие вызвало скрипт по новой - значит клик двойной
{
file_get_contents("http://192.168.1.201/sec/?cmd=8:2");// выполняем действие
$this->setProperty('Dubble',0); //нажатие обработано
};