PDA

Просмотр полной версии : Отслеживание перемещений мыши.


Avtorpc
03.01.2009, 05:38
Столкнулся с такой проблемой. Есть баннер, на нем всплывает подсказка при наведении мыши. Все хорошо работает, если двигаешь мышь медленно, но стоит сделать резкое движение мыши за пределы баннера, то все координаты перестают вычисляться и подсказка зависает.
баннер здесь http://avtorpc.narod.ru/dobb/Untitled-6.html
_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
Подумав добавил вот такой код
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
вопрос. должна ли подсказка высвечиваться при движении мыши по всему банеру, или только по определённому квадрату этого банера?

Вообще программировалось высвечивание подсказки при движение мыши по всему пространству баннера. Единственное, с краев баннера сделана 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 и тогда все проблемы с координатами решатся сразу...