Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Движение мыши за объектом (http://www.flasher.ru/forum/showthread.php?t=178677)

leff27 26.04.2012 22:50

Движение мыши за объектом
 
Добрый вечер!
Имеется:
Код AS3:

***.***2.***3.addEventListener(MouseEvent.MOUSE_DOWN, startdrag)
function startdrag(e:MouseEvent):void{
 
        ***.***2.***3.startDrag(true, new Rectangle(6,4,162,0));
        ***.***2.***3.addEventListener(Event.ENTER_FRAME,mcpos)
}
function mcpos(e:Event):void{
                ***.***2.***4.scaleX = (***.***2.***3.x)/170;
                channel.soundTransform.volume = ***.***2.***4.scaleX;
        }

При движении в пределах ***.***2.***3 все работает, но стоит вывести за пределы объекта ***.***2.***3 движение останавливается... Как можно сделать, чтобы при нажатии на объект, последующее его перемещение ***.***2.***3 работало за пределами объекта и даже сцены?

Zebestov 26.04.2012 23:14

Код AS3:

***.***2.***3.parent.addEventListener(MouseEvent.MOUSE_DOWN, startdrag);
***.***2.***3.parent.addEventListener(MouseEvent.MOUSE_UP, stopdrag);
 
function startdrag(e:MouseEvent):void
{
        ***.***2.***3.startDrag(true, new Rectangle(6,4,162,0));
        ***.***2.***3.addEventListener(Event.ENTER_FRAME,mcpos)
}
 
function stopdrag(e:MouseEvent):void
{
        ***.***2.***3.stopDrag();
        ***.***2.***3.removeEventListener(Event.ENTER_FRAME,mcpos)
}
 
function mcpos(e:Event):void
{
        ***.***2.***4.scaleX = (***.***2.***3.x)/170;
        channel.soundTransform.volume = ***.***2.***4.scaleX;
}


leff27 26.04.2012 23:52

единственное отличие -
Код AS3:

.parent

- не повлияло никак... все остальное было...
если нажать на объект, вывести мышку за его пределы, то все двигается, если отпустить всё равно двигается - это я знаю как пофиксить.., но, как сделать, чтобы, если вывести мышку(с нажатой кнопкой) за пределы флеш-объекта, т.е самой сцены, т.е за пределы браузера, мой ползунок всё равно двигался, если отжать кнопку(MOUSE_UP), то переставал??

Zebestov 26.04.2012 23:55

javascript тебе в помощь.

strangedk 27.04.2012 00:07

Цитата:

Сообщение от leff27 (Сообщение 1077178)
Добрый вечер!

При движении в пределах ***.***2.***3 все работает, но стоит вывести за пределы объекта ***.***2.***3 движение останавливается... Как можно сделать, чтобы при нажатии на объект, последующее его перемещение ***.***2.***3 работало за пределами объекта и даже сцены?

Слушайте событие MOUSE_OUT родителя ваших объектов.

зы. а к чему звездочки? что помешало нормально написать?

leff27 27.04.2012 00:20

Цитата:

Сообщение от strangedk (Сообщение 1077184)
Слушайте событие MOUSE_OUT родителя ваших объектов.

зы. а к чему звездочки? что помешало нормально написать?

Благодарю... Заработало

Код AS3:

obj.slider_mc.mc.parent.addEventListener(MouseEvent.MOUSE_OUT, drag)
function drag(e:MouseEvent):void{
 
        obj.slider_mc.mc.startDrag(true, new Rectangle(6,4,162,0));
        obj.slider_mc.mc.addEventListener(Event.ENTER_FRAME,mcpos)
}

Добавлено через 59 минут
Как можно узнать находится мышь в состоянии UP или DOWN??
Мне нужно сделать, чтобы при возвращении в объект, если кнопка является отжатой, то выполнялась функция stopDrag... Или может быть как-то можно отследить, что если за объектом произошло MOUSE_UP, то выполнялась бы stopDrag ???

Код AS3:

player.parent.addEventListener(MouseEvent.MOUSE_UP, stopdrag2)
function stopdrag2(e:MouseEvent):void{
        player.slider_mc.mc.parent.removeEventListener(MouseEvent.MOUSE_OUT, stopdrag3)
        player.slider_mc.mc.stopDrag();
}

^не работает^

strangedk 27.04.2012 14:14

Цитата:

Как можно узнать находится мышь в состоянии UP или DOWN??
в событии типа MouseEvent есть параметр buttonDown

Код AS3:

e.buttonDown

Добавлено через 49 секунд
не используйте Drag, если вам нужны подробные сведения о событии. Drag изначально кривой


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

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