|
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
узнать имя мувика под курсором
Здравствуйте, как можно узнать имя мувика который находится под курсором?
1)Например есть на сцене мувики, у некоторых есть имена, например как можно организовать что бы при наведении курсора на мувик я мог получить его имя 2)если в мувике вложен еще один мувик, можно его имя получить при наведении курсора мыши? 3)если мувик с именем x в него вложен мувик с именем y , как тогда вытащить имена? |
|
|||||
Регистрация: Apr 2014
Сообщений: 215
|
Цитата:
? я с e.target особо не сталкивался |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
samana, а зачем stage подписывать на mouse_over?
Вроде на mouse_move нужно? Добавлено через 4 минуты Вы меня простите, у меня сейчас нет возможности проверить, но с mouse_over могло бы получится, если бы объекты лежали в spriteContainer. У Sprite есть, вроде, момент, что он показывает только на лежащие в нем объекты, а на пустоте события не ловит. Но со stage же другая вроде история, так как именно на ней подписывают, когда sprite пустоту игнорирует. Или я не прав? |
|
|||||
Gerbert, вы правы, stage не обязательно подписывать, можно ограничится и документ классом, а stage это так, для глобального масштаба.
А mouse_move будет лишним, ведь нужно узнать имя объекта под мышью именно тогда, когда на него "зашла" мышь, а не постоянно когда мышь даже в его пределах. Хотя зависит от того, что хочешь получить ТС. Цитата:
delphic, попробуйте такой код |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Цитата:
То есть, на залитых прямоугольниках будет, а вне нет. var container = new Sprite( ); container.addEventListener( MouseEvent.MOUSE_MOVE, container_mouseMoveHandler ); super.addChild( container ); var rect1 = new Sprite( ); rect1.graphics.biginFill( 0x000000 ); rect1.graphics.drawRect( 0, 0, 50, 50 ); rect1.graphics.endFill( ); container.addChild( rect1 ); var rect2 = new Sprite( ); rect2.graphics.biginFill( 0x000000 ); rect2.graphics.drawRect( 0, 0, 50, 50 ); rect2.graphics.endFill( ); rect2.x = 150; container.addChild( rect2 ); |
|
|||||
Gerbert, ага понял вашу мысль. Конечно, никакое событие мыши не возникнет, если курсор над пустотой (не залитой зоной). И с чего бы этому событию возникать, ведь идёт проверка не по boundsRect спрайта.
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
samana, да не возникнет и именно для этого мы подписываем stage на mouse_move?
Что в свою очередь гарантирует работу события везде. И я это к чему... Вы посоветовали подписать stage на mouse_over и у меня возникло предположение, которое я не могу сейчас проверить, что из-за того, что target stage, событие over станет срабатывать везде. То есть, у меня на сцене те же два прямоугольника, но событие over срабатывает везде.. Нет? |
|
|||||
Gerbert, что-то я запутался, не могу понять, что вас смущает)
Если вы подпишите stage на mouseOver, то вы всё равно никогда не сможете увидеть результат e.target==stage, так как на stage нельзя ничего нарисовать (graphics (если я не ошибаюсь)) и это событие будут вызывать любые другие объекты, но не stage. Даже если вы подпишите только документКласс на mouseOver, то это событие словит тоже любой объект, любой вложенности, так как он является потомком документКласса. Поэтому, чтобы узнать имя объекта при наведении на него мыши, не обязательно подписывать stage, достаточно и документКласса. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
samana, и не надо,я проверил и оказалось, что.. Не надо
|
Часовой пояс GMT +4, время: 20:51. |
|
« Предыдущая тема | Следующая тема » |
|
|