Форум 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)
-   -   Отслеживание перемещений мыши. (http://www.flasher.ru/forum/showthread.php?t=119845)

Avtorpc 03.01.2009 05:38

Отслеживание перемещений мыши.
 
Столкнулся с такой проблемой. Есть баннер, на нем всплывает подсказка при наведении мыши. Все хорошо работает, если двигаешь мышь медленно, но стоит сделать резкое движение мыши за пределы баннера, то все координаты перестают вычисляться и подсказка зависает.
баннер здесь http://avtorpc.narod.ru/dobb/Untitled-6.html
Код AS1/AS2:

_root.cl.onPress=function(){
        getURL("http://avtorpc.narod.ru/dobb/dob.html","_blank","GET");
}
onMouseMove = function () {
        var isHit:Boolean=_root.cl.hitTest(_root._xmouse,_root._ymouse, false);
 
          if (isHit){       
            if (_root._xmouse>165){
                _root.pole._x=_root._xmouse-163;
                _root.pole._y=_root._ymouse+3;
                _root.pole._alpha=100;
 
                                                                  }
          if (_root._xmouse<130){
              _root.pole._x=_root._xmouse+3;
              _root.pole._y=_root._ymouse+3;
              _root.pole._alpha=100;
 
                                              }
        }
        if(!isHit){
              _root.pole._alpha=0;
                  }
        updateAfterEvent();
}

Кто знает как бороться с этой проблемой?

flazher 03.01.2009 10:11

Никак не бороться. Впрочем, можно сделать побольше разрешение флешки, и как только мышка начнет двигаться за пределами установленных границ (которые меньше самого разрешения) убирать подсказку с координатами.

Avtorpc 03.01.2009 17:44

Подумав добавил вот такой код
Код AS1/AS2:

var i=0;
_root.onEnterFrame=function(){
        if (mx==_root._xmouse){
              i=i+1; trace (i);
                if (i>72){
                  _root.pole._alpha=0;
                  i=0;
                }
                  }
              else {mx=_root._xmouse;
                  i=0;}
}

Он убирает через приблизительно две сек. пояснение если нет активности мыши. http://avtorpc.narod.ru/dobb/testov_banner.html

amexdesign 03.01.2009 23:15

вопрос. должна ли подсказка высвечиваться при движении мыши по всему банеру, или только по определённому квадрату этого банера?

Avtorpc 04.01.2009 02:22

Цитата:

Сообщение от amexdesign (Сообщение 787986)
вопрос. должна ли подсказка высвечиваться при движении мыши по всему банеру, или только по определённому квадрату этого банера?

Вообще программировалось высвечивание подсказки при движение мыши по всему пространству баннера. Единственное, с краев баннера сделана 2-х пиксельная мертвая зона.

amexdesign 04.01.2009 03:18

в таком случае следует зделать так:
Код:

_root.cl.onPress=function(){
        getURL("http://avtorpc.narod.ru/dobb/dob.html","_blank","GET");
}
onMouseMove = function () {
        if(_root.cl.hitTest(_root._xmouse,_root._ymouse, true)){
              _root.pole._x=_root._xmouse+3;
              _root.pole._y=_root._ymouse+3;
              _root.pole._alpha=100;
        }else{
              _root.pole._alpha=0;
        }
        updateAfterEvent();
}

2 пикеля на краях банера не релевантны, так как практически не заментны...

MrXoT 07.01.2009 11:42

Друг мой, а не легче сделать кнопку на весь баннер и проверять onRollOver или onRollOut и тогда все проблемы с координатами решатся сразу...


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

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