Форум 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=202826)

Chelovek 13.08.2013 15:19

Перетаскивание вне сцены.
 
Здравствуйте.Вот что у меня получилось
Код AS3:

var a:Boolean = false;
var mousey:int;
var mousex:int;
 
map.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
map.addEventListener(MouseEvent.MOUSE_UP, mouseReleasedHandler);
stage.addEventListener(Event.ENTER_FRAME, _enterFrame);
 
function mouseDownHandler(e:MouseEvent):void
{
        a = true;
}
function mouseReleasedHandler(e:MouseEvent):void
{
        a = false;
}
 
function _enterFrame(e:Event):void
{
        if (a == true)
        {
                map.x +=  stage.mouseX - mousex;
                map.y +=  stage.mouseY - mousey;
        }
        mousey = stage.mouseY;
        mousex = stage.mouseX;
}

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

SvetozarPNZ 13.08.2013 15:34

Добавить условие для перетаскивание: координаты мышки находятся в пределах сцены.

AlexLucas 13.08.2013 16:20

Вешать MouseEvent.MOUSE_UP на stage, вы словите событие даже если мышь за пределами флешки.

Chelovek 13.08.2013 16:22

SvetozarPNZ, AlexLucas, спасибо за помощь!

maincode 13.08.2013 16:38

А еще может пригодится событие Event.MOUSE_LEAVE, срабатывающее в момент выхода мышки за пределы флешки.


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

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