|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2009
Сообщений: 22
|
Обработчик блокирует вложенные элементы
Приветствую!
Такая проблема. Есть мувиклип (круг), внутри него встроен другой элемент (круг поменьше). Так вот если для большого круга написать любую функцию (будь то rollover/startDrag и т.д.), то становится невозможным никоим образом нажать кружок поменьше. Как решить эту проблему? Мне необходимо, чтоб круг поменьше продолжал сидеть в большем круге (когда я его перетаскиваю) + родительская функция не перекрывала дочернюю. Спасибо. |
|
|||||
Модрон-ветеринар
|
Используйте hitTest.
Пример с решением, похожий на вашу ситуацию, есть в этой теме http://www.flasher.ru/forum/showthread.php?t=160616 Тут же кстати и решение, как обойтись без кондового startDrag. В вашем случае также требуется аккуратно указать пути для всех обработчиков. Еще один пример, когда с помощью hitTest эмулируются кнопочные события, прилагаю.
__________________
Идите первым! Последний раз редактировалось mooncar; 25.07.2011 в 20:52. |
|
|||||
Регистрация: Oct 2009
Сообщений: 22
|
То есть вместо onRollOver на внутренний кружок, сделать проверку на хиттест кружка с курсором мышки?
|
|
|||||
Модрон-ветеринар
|
Просто на проверку координат мыши.
А уж на что хиттест - воля ваша, на все объекты, чтобы еще и перетаскивание организовать, как в примере, либо только на внутренний.
__________________
Идите первым! |
|
|||||
Регистрация: Oct 2009
Сообщений: 22
|
Да, спасибо, работает.
А как организовать нажатие мышки на внутренний кружок? |
|
|||||
Модрон-ветеринар
|
Ну делать проверку на хиттест со внутренним кружком при событии onMouseDown (~ onPress). Или на отпускание мыши (~ onRelease).
__________________
Идите первым! |
|
|||||
Регистрация: Oct 2009
Сообщений: 22
|
Что-то не получается. Подскажи поподробней, пожалуйста)
|
|
|||||
onMouseDown = function(){ if(b1.b2.hitTest(_root._xmouse, _root._ymouse, true)) trace("Внутренний круг был нажат!"); else if(b1.hitTest(_root._xmouse, _root._ymouse, true)) trace("Внешний круг был нажат!"); } onMouseUp = function(){ if(b1.b2.hitTest(_root._xmouse, _root._ymouse, true)) trace("На внутреннем круге мышь была отпущена!"); else if(b1.hitTest(_root._xmouse, _root._ymouse, true)) trace("На внешнем круге мышь была отпущена!"); } b2 - круг внутри круга внешнего (внутренний). |
|
|||||
Регистрация: Oct 2009
Сообщений: 22
|
Спасибо, отлично рабоотает
|
Часовой пояс GMT +4, время: 11:08. |
|
« Предыдущая тема | Следующая тема » |
|
|