Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как поймать события мыши для перекрытого объекта (http://www.flasher.ru/forum/showthread.php?t=171567)

imena 18.11.2011 22:25

Как поймать события мыши для перекрытого объекта
 
Всем привет.

Есть два спрайта...

Код AS3:

addChild(a);
addChild(b);

если они не перекрывают друг-друга, то все отлавливается как надо, но как отловить события мыши перекрытым объектом? Т.е., один объект перекрывает другой частично... и вот...мы водим мышкой по той картинке которая перекрывает... Все отлавливается отлично.. но вот курсор находится в той области верхней картинки, под которой находится часть нижней картинки, которая перекрыта верхней картинкой.. и как в этом случае сделать чтобы нижняя картинка стала отлавливать перемещение мыши?

Перечитал про события несколько раз... нижняя отлавливает только в том случае если
Код AS3:

a.addChild(b);
addChild(a);


КорДум 18.11.2011 22:28

Верхнему назначить
Код AS3:

mouseEnabled = mouseChildren = false;


imena 18.11.2011 22:33

Цитата:

Сообщение от КорДум (Сообщение 1046961)
Верхнему назначить
Код AS3:

mouseEnabled = mouseChildren = false;


это понятно... но как определить что мы уже на "территории" нижней картинки, если нижняя картинка вообще не реагирует на мышь в том месте где ее перекрывает верхняя?

Мне нужен вариант именно когда
Код AS3:

addChild(a);
addChild(b);

т.е., родитель у них стейдж....

КорДум 18.11.2011 22:39

Код AS3:

hitTestUnderPoint

?
Нет, фигню написал. Сейчас напрягу память и вспомню то, что надо.

Добавлено через 7 минут
Во, вспомнил.
DisplayObjectContainer#getObjectsUnderPoint

imena 18.11.2011 23:22

Цитата:

Сообщение от КорДум (Сообщение 1046965)
Код AS3:

hitTestUnderPoint

?
Нет, фигню написал. Сейчас напрягу память и вспомню то, что надо.

Добавлено через 7 минут
Во, вспомнил.
DisplayObjectContainer#getObjectsUnderPoint

Неее.... hitTestObject не пойдет... там надо будет перебирать все объекты на сцене... Экспериментирую с hitTestPoint... чет у меня не то что написано получается... то ли КС5 глючит то ли еще что-то... т.к. в ФД работает так как написано в хэлпе.

КорДум 18.11.2011 23:24

Будьте внимательны к собщениям, я ни о каком hitTest'е не говорил.

imena 18.11.2011 23:41

Цитата:

Сообщение от КорДум (Сообщение 1046973)
Будьте внимательны к собщениям, я ни о каком hitTest'е не говорил.

ой..точно...блин....

dimarik 18.11.2011 23:42

Цитата:

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

imena 18.11.2011 23:56

простите.... мы сами не местные с рыбным обозом пришли, щи лаптями хлебаем.

З.Ы. Сорри, ))) не воспринимайте как агрессию мой ответ.... просто, это была моя первая реакция на ваш пост... но потом, подумав... решил что все верно, т.к. сам бешусь когда говорят позвОнишь, вместо позвонИшь.

dimarik 19.11.2011 00:30

Агрессия, раздражение — сильная эмоция, она способна закрепить в памяти предмет обсуждения. А прилюдное самоуничижение указывает на степень проводимости нервных импульсов в синапсах пирамидальных нейронов префронтального кортекса.

Lunatic 19.11.2011 02:14

http://www.flasher.ru/forum/showthread.php?t=171309

imena 19.11.2011 04:01

Цитата:

Сообщение от Lunatic (Сообщение 1046994)

неее... не то... как отрубить объекты я знаю... а вот КОГДА отрубить... вот в чем вопрос.

На счет getObjectsUnderPoint... блин... я уже башку сломал... он вытаскивает все что нужно и не нужно...
К примеру... спрайт№1 содержит в себе битмапу... спрайт№2 содержит тоже битмапу... спрайт№1 перекрывает частично спрайт№2.... Если взять за контейнер стейдж... то будет выводится следующее при перемещении по одному из спрайтов

[object Sprite],[object Bitmap]

а когда по перекрытому участку...

[object Sprite],[object Bitmap],[object Sprite],[object Bitmap]

если взять за контейнер каждый отдельный спрайт, то будет только

[object Sprite][object Bitmap]

Можно определить кто из спрайтов есть ху... но как быть с битмапами?

Уверен, все это делается на раз-два-три... только вот никак пока

Добавлено через 8 минут
Цитата:

Сообщение от dimarik (Сообщение 1046982)
Агрессия, раздражение — сильная эмоция, она способна закрепить в памяти предмет обсуждения. А прилюдное самоуничижение указывает на степень проводимости нервных импульсов в синапсах пирамидальных нейронов префронтального кортекса.

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

З.Ы. блин... уволят меня однажды

КорДум 19.11.2011 09:48

Можно определить кто из спрайтов есть ху... но как быть с битмапами?
Код AS3:

if (mySprite1 === arrObjects[i]) // это mySprite1


imena 19.11.2011 17:10

блин... все равно надо перебирать все... и проверять акждый объект кто кому принадлежит, т.е. когда один объекта будет иметь кучу спрайтов, каждый из которых будет иметь битмапы... Я вот думаю, может просто проверять не попадает ли текущая координата в координаты двух и более объектов и уже отсюда плясать.... по крайней мере, мы будем иметь дело даже не со спрайтами, а с объектом Кнопка, объект Форма... Просто, я думал что естьспособ красивее


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

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