Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Отследить двойное нажатие мыши на конкретном mc (http://www.flasher.ru/forum/showthread.php?t=109976)

artemst 24.03.2008 23:43

Отследить двойное нажатие мыши на конкретном mc
 
нашёл код на форуме:
Код:

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

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


Часовой пояс GMT +4, время: 10:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.