узнать имя мувика под курсором
Здравствуйте, как можно узнать имя мувика который находится под курсором?
1)Например есть на сцене мувики, у некоторых есть имена, например как можно организовать что бы при наведении курсора на мувик я мог получить его имя 2)если в мувике вложен еще один мувик, можно его имя получить при наведении курсора мыши? 3)если мувик с именем x в него вложен мувик с именем y , как тогда вытащить имена? |
Подпишите stage на MOUSE_OVER и узнавайте кто вызвал событие с помощью e.target
|
Цитата:
Код AS3:
я с e.target особо не сталкивался |
samana, а зачем stage подписывать на mouse_over?
Вроде на mouse_move нужно? Добавлено через 4 минуты Вы меня простите, у меня сейчас нет возможности проверить, но с mouse_over могло бы получится, если бы объекты лежали в spriteContainer. У Sprite есть, вроде, момент, что он показывает только на лежащие в нем объекты, а на пустоте события не ловит. Но со stage же другая вроде история, так как именно на ней подписывают, когда sprite пустоту игнорирует. Или я не прав? |
Gerbert, вы правы, stage не обязательно подписывать, можно ограничится и документ классом, а stage это так, для глобального масштаба.
А mouse_move будет лишним, ведь нужно узнать имя объекта под мышью именно тогда, когда на него "зашла" мышь, а не постоянно когда мышь даже в его пределах. Хотя зависит от того, что хочешь получить ТС. Цитата:
delphic, попробуйте такой код Код AS3:
|
Цитата:
То есть, на залитых прямоугольниках будет, а вне нет. Код AS3:
|
Gerbert, ага понял вашу мысль. Конечно, никакое событие мыши не возникнет, если курсор над пустотой (не залитой зоной). И с чего бы этому событию возникать, ведь идёт проверка не по boundsRect спрайта.
|
samana, да не возникнет и именно для этого мы подписываем stage на mouse_move?
Что в свою очередь гарантирует работу события везде. И я это к чему... Вы посоветовали подписать stage на mouse_over и у меня возникло предположение, которое я не могу сейчас проверить, что из-за того, что target stage, событие over станет срабатывать везде. То есть, у меня на сцене те же два прямоугольника, но событие over срабатывает везде.. Нет? |
Gerbert, что-то я запутался, не могу понять, что вас смущает)
Если вы подпишите stage на mouseOver, то вы всё равно никогда не сможете увидеть результат e.target==stage, так как на stage нельзя ничего нарисовать (graphics (если я не ошибаюсь)) и это событие будут вызывать любые другие объекты, но не stage. Даже если вы подпишите только документКласс на mouseOver, то это событие словит тоже любой объект, любой вложенности, так как он является потомком документКласса. Поэтому, чтобы узнать имя объекта при наведении на него мыши, не обязательно подписывать stage, достаточно и документКласса. |
samana, и не надо,я проверил и оказалось, что.. Не надо:)
|
Часовой пояс GMT +4, время: 19:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.