PDA

Просмотр полной версии : Срабатывание события ROLL_OUT при движении мышки вправо


FriOne
29.05.2013, 12:00
Хочу сделать свой курсор над определенными спрайтами. Собственно тема и есть вопрос, есть спрайт, на котором висят три события ROLL_OVER, ROLL_OUT и MOUSE_MOVE. Ели двигаешь мышку влево по спрайту, то все ок, если вправо, то постоянно срабатывает ROLL_OUT, ROLL_OVER.

public function showZoom(object:Sprite):void
{
_objects[object] = "zoom";
object.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
object.addEventListener(MouseEvent.ROLL_OUT, rollOutHandler);
object.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}

private function mouseMoveHandler(e:MouseEvent):void
{
if (_currentCursor) {
_currentCursor.x = _container.mouseX;
_currentCursor.y = _container.mouseY;
}
}

private function rollOverHandler(e:MouseEvent):void
{
Mouse.hide();
var type:String = _objects[e.target];
var cursor:Sprite;
switch(type) {
case "left":
_currentCursor = _leftArrow;
break;
case "right":
_currentCursor = _rightArrow;
break;
case "zoom":
_currentCursor = _zoom;
break;
default:
break;
}
_currentCursor.x = _container.mouseX;
_currentCursor.y = _container.mouseY;
_currentCursor.visible = true;
}

private function rollOutHandler(e:MouseEvent):void
{
Mouse.show();
_currentCursor.visible = false;
}
_currentCursor лежит в _container; cпрайт подгружается из swf, его прозрачность 0.01.
Подскажите в чем проблема.

Babylon
29.05.2013, 12:13
Возникновение событий не зависит от направления перемещения. Надо смотреть расположение спрайтов.

evgen4ik
29.05.2013, 13:22
скорее всего при движении вправо дефолтный курсор наползает на спрайт вашего курсора и, спрайт-контейнер, с которого был совершен переход стреляет событие ролл_аут, потом вы пересчитываете координаты спрайта вашего курсора -> он сдвигается, и дефолтный курсор опять перескакивает со спрайта курсора на спрайт-контейнер и последний стреляет ролл_овер

Wolsh
29.05.2013, 13:33
_currentCursor.mouseEnabled = false;
_currentCursor.mouseChildren = false;

FriOne
29.05.2013, 21:30
Видимо вы правы, попробовал вариант Wolsh, почему-то не сработало, но когда прибавил к координатам мышки 3, более менее работает. В итоге изменил эти свойства у контейнера содержащего курсоры - помогло, спасибо)

Babylon
30.05.2013, 00:08
Чем отличается Бердск, НСО от Бердск, НСК?

Wolsh
30.05.2013, 02:31
Видимо, "Бердск, НСК" это перечисление "Бердск, Новосибирск")))
А я просто "Бердск Новосибирская Область".