Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Отслеживание реакции мувика, над которым перетаскивается другой (http://www.flasher.ru/forum/showthread.php?t=111454)

IDVsbruck 26.04.2008 21:31

Отслеживание реакции мувика, над которым перетаскивается другой
 
Есть несколько небольших мувиков, которые я без труда могу переносить (динамически создаю клоны и их переношу). Ранее были просто области-мувики, в которые я мог перенести свои малые. При релизе использовал hitTest и без труда проверял присутствие своих мувиков в этих областях.

Однако ситуация поменялась: надо, чтобы области, над которыми я проношу малые мувики, реагировали на присутствие над ними объектов.

Получается, что так как я "несу" мувик, то события onRollOver и onDragOver на слипы, находящиеся еще ниже, не распространяются. Как сделать так, чтобы обойти это затруднение? - Как я могу назначить событиям от мыши область применения на все объекты на сцене вне зависимости от их расположения (уровня)?

Есть такой нюанс: если бы зон реакции было немного, то я бы повесил на событие движения мыши с флагом drag обработчик, в котором делал бы проверку тем же hitTest, но у меня около сотни таких зон и обработчик будет сильно притормаживать.

Спасибо за содействие.

fljot 27.04.2008 15:24

апы здесь караются

в ас2 у меня лично не получилось, а вот в ас3 можно после startDrag() сделать таскаемый объект mouseEnabled = false и повесить MOUSE_UP на stage.. ролловеры тогда будут срабатывать

Psycho Tiger 27.04.2008 16:08

Если они разбросаны не хаотично - то можно вполне вычислять координаты перетаскиваемого мувика и узнавать, над которым он находится. Математика. однако.

Можно положить перетаскиваемый мувик под самый низ и использовать не startDrag, а
Код:

mc.onEnterFrame=function():Void{
this._x=_xmouse;
this._y=_ymouse;
}


IDVsbruck 27.04.2008 21:26

Не могу ... перетаскиваю монетки и определить надо, над какой областью переносится.
Один вариант есть, но он очень муторный, на мой взгляд.
По идее можно как-то переадресовывать событие мыши сцене и чтобы все мувики на него реагировали.
Еще можно сделать монетку курсором мыши и тогда не будет мувика над мувиком, а только специфический курсор и, соответственно, реакция нижнего мувика.

MrPoma 27.04.2008 22:20

Объясните нормально, что Вам нужно, а то монетки какие-то надо областью переносятся...

Wolsh 27.04.2008 23:32

Вложений: 1
Фокус-покус! :p

IDVsbruck 29.04.2008 18:26

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

Два дня возился и полностью реализовал задуманное: при перетаскивании любого (начального или созданного) мувика нужные области подсвечиваются вне зависимости, есть ли на них что-то или нет. Кроме этого, все объекты созданы динамически и их количество неограничено. И дублирующая "подложка" не понадобилась ...

В процессе работы лично для меня открылась такая хитрая особенность поведения мувиклипов: мувиклип с прикрепленным обработчиком события ведет себя иначе, чем "голый", даже если событие на касается его непосредственно.


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

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