PDA

Просмотр полной версии : отследить зажатие кнопки


AlexDesinger
16.05.2008, 21:40
Народ, всем здарова, подскажите плиз как отследить то что пользователь нажал на кнопку и долго ее не отпускает)))
т.е. при обычном клике происходит действие_01, а если пользователь зажал кнопку скажем больше чем на 2 секунды, то выполняется действие_02 ?
я пробовал запустить getTimer но так толком ничего не вышло :umnik2:

Vertax
16.05.2008, 21:51
Что то типа:
var intID;

ACTION1 = function ()
{
trace ("A1");
}

ACTION2 = function ()
{
trace ("A2");
}

CLIP.onPress = function ()
{
CLIP.onRelease = ACTION1;
intID = setInterval(longPress, 2000, null);
}

longPress = function ()
{
CLIP.onRelease = ACTION2;
}

silin
16.05.2008, 21:53
или
var time:Number;
but.onPress=function(){
time=getTimer();
}
but.onRelease=function(){
if (getTimer() - time > 2000)
{
trace("release");
}else
{
trace("click");
}
}

AlexDesinger
16.05.2008, 22:12
да, спасибо, только действие _02 срабатывает при отпускании кнопки, мне хочется сделать чтоб оно срабатывало при том же нажати....о - как скролл в виндовс - когда клик на стрелке - сдвигается чуть чуть, а когда зажмешь стрелку - скролл плавно передвигается =)

silin
17.05.2008, 00:16
>>чтоб оно срабатывало при том же нажати..
вообще-то при нажатии, узнать сколько юзер будет держать невозможно
клик по-любому можно определять только при отпускании в течении какого-то интервала
var intervalID:Number;
var timeOut:Boolean;
but.onPress=function(){
clearInterval(intervalID);
timeOut=false;
intervalID=setInterval(longPress,200);
}
but.onRelease=function(){
clearInterval(intervalID);
if(!timeOut)
{
trace("click");
}
}
function longPress(){
//clearInterval(intervalID);//если не надо чтоб действие повторялось при нажатой
timeOut=true;
trace("longPress");
}

AlexDesinger
17.05.2008, 00:56
Ого, круто! Я тож вот сижу и с setInterval эксперемнтирую
Если я правильно понял то setInterval исполняется только при нажатой кнопке, так?
Т.е. если кнопка не нажата, функция интервала не работает,так?
Если да то это здорово, поскольку здорово экономит ресурсы =)

MrPoma
17.05.2008, 02:25
Вы спрашиваете про конкретный случай или в общем?