Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Drag And Drop (http://www.flasher.ru/forum/showthread.php?t=181377)

koljsch 21.06.2012 22:23

Drag And Drop
 
Как узнать был ли перемещен объект с помощью метода startDrag в определенную область?

КорДум 21.06.2012 22:55

Ну либо банальная проверка на координаты, либо hitTestObject какой-нибудь. Мало информации.

bav 21.06.2012 22:56

Проверить его координаты после вызова метода stopDrag? hitTestPoint, hitTestObject?
P.S. Кто не успел, того и тапки :)

garymar 21.06.2012 23:04

mc.addEventListener(MpuseEvent.MOUSE_OVER, onMouseOverFunc);

koljsch 21.06.2012 23:21

Так, а почему при перемещение объект не меняет x y на новые?

КорДум 21.06.2012 23:22

Как проверяете/узнаете?

koljsch 21.06.2012 23:24

Код AS3:

Image1.addEventListener(MouseEvent.MOUSE_UP, ImageStopDrag);
function ImageStopDrag(event:MouseEvent):void {
Image1.stopDrag();
trace(Image1.x);
trace(Image1.y);
}

x и y остаются все время постоянными

КорДум 21.06.2012 23:28

Не знаю. Попробуйте использовать mouseDown, mouseMove, mouseUp вместо start/stopDrag. Никогда им не пользовался.
Это события, если что, а не методы.

koljsch 21.06.2012 23:30

Не понял, т.е. перемещать вручную, каждый раз получая координаты мыши?

КорДум 21.06.2012 23:33

Да (что и инкапсулировано в startDrag(), похоже). При событии mouseMove объект.х = мышка.х и то же самое с игреком.

Добавлено через 4 минуты
Код AS3:

_obj.addEventListener(MouseEvent.MOUSE_DOWN, obj_mouseDownHandler);
 
...
 
 
private function obj_mouseDownHandler(event:MouseEvent):void {
        stage.addEventListener(MouseEvent.MOUSE_MOVE, obj_mouseMoveHandler);
        _obj.addEventListener(MouseEvent.MOUSE_UP, obj_mouseUpHandler);
}
 
private function obj_mouseUpHandler(event:MouseEvent):void {
        stage.removeEventListener(MouseEvent.MOUSE_MOVE, obj_mouseMoveHandler);
        _obj.removeEventListener(MouseEvent.MOUSE_UP, obj_mouseUpHandler);
}
 
 
private function obj_mouseMoveHandler(event:MouseEvent):void {
        //event.updateAfterEvent();
        _obj.x = mouseX;
        _obj.y = mouseY;
}

Как-то так.


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

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