Вход

Просмотр полной версии : Отследить двойное нажатие мыши на конкретном mc


artemst
24.03.2008, 23:43
нашёл код на форуме:

t=0;
Mouse.addListener(mc.onDbl={});
mc.onDbl.onMouseDown=function(){//mc - кнопка(мувик)
if(getTimer()-t<500){//500 мс
trace("double");//действия по двойному клику
}
t=getTimer();
}

Эта вещь работает, но работает по всей флэшке, а мне нужно чтобы событие происходило именно при двойном нажатии конкретном мувике (а сейчас куда не ткни на сцене - срабатывает событие)...

silin
25.03.2008, 00:01
как вариант: проверять хитТест этого мувика с мышью
var t=0;
Mouse.addListener(mc.onDbl={});
mc.onDbl.onMouseDown=function(){//mc - кнопка(мувик)
if(!mc.hitTest(_root._xmouse,_root._ymouse))return;
if(getTimer()-t<500){//500 мс
trace("double on mc");//действия по двойному клику
}
t=getTimer();
}

iNils
25.03.2008, 00:15
А двойной onPress разве не лучше?

silin
25.03.2008, 00:43
согласен: где-то и лучше
я же оговорился про "как вариант"..:)
еще такой момент: onMouseDown/hitTest не сильно напряжет систему, зато onPress свободен.., еще для вложенных мувиков будет работать, хотя и с возможной кривизной (если мувик закрыт другим, например)
вобщем нюансы есть и решать надо все по месту..

зы:
вариант, о котором речь выше:
var t:Number=0;
mc.onPress=function(){
if(getTimer()-t<500){
trace("doubleClik on mc");
}
t=getTimer();
}

artemst
25.03.2008, 10:27
Спасибо, вариант с хитТестом подошёл...благодарствую :)