![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Есть большой прямоугольник, как отдельный объект, на нем есть слушатель на клик. Еще поверх него добавляю маленький прямоугольник, на котором тоже есть слушатель на клик.И когда кликаю по маленькому прямоугольнику, слушатель срабатывает и на большом и на маленьком объекте. А как сделать так чтобы при клике на маленький объект срабатывал только его слушатель, а не оба.
Последний раз редактировалось Tr1te; 27.04.2010 в 16:38. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Есть большой прямоугольник, как отдельный объект, на нем есть слушатель на клик. Еще поверх него добавляю маленький прямоугольник, на котором тоже есть слушатель на клик.И когда кликаю по маленькому прямоугольнику, слушатель срабатывает и на большом и на маленьком объекте. А как сделать так чтобы при клике на маленький объект срабатывал только его слушатель, а не оба.
|
|
|||||
var sprite1:Sprite = new Sprite(); sprite1.graphics.beginFill(0x000000, 1); sprite1.graphics.drawRect(0, 0, 100, 100); sprite1.x = 75; sprite1.y = 50; addChild(sprite1); var sprite2:Sprite = new Sprite(); sprite2.graphics.beginFill(0x0000CC, 1); sprite2.graphics.drawRect(0, 0, 200, 100); sprite2.x = 100; sprite2.y = 80; addChild(sprite2); sprite1.addEventListener(MouseEvent.CLICK, clickFirst); sprite2.addEventListener(MouseEvent.CLICK, clickSecond); function clickFirst(e:MouseEvent):void { trace("click first") } function clickSecond(e:MouseEvent):void { trace("click second") }
__________________
O God! The Aftermath. Последний раз редактировалось dmitriev; 27.04.2010 в 16:59. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
У меня второй является ребенком первого.
|
|
|||||
|
Если они в одном контейнере (т.е. братья), то верхний перехватит событие (т.е. до нижнего не дойдет. Как и показал dmitriev.
Если они вложены друг в друга, то помогут mouseChildren на родителе или stopPropagation(). Последний раз редактировалось Волгоградец; 27.04.2010 в 17:08. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Спасибо всем большое.
stopPropagation() - помог. |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
я думаю Tr1te хочет что-то типа:
package { import flash.display.* import flash.events.* public class Main extends Sprite { public function Main() { super(); var sprite1:Sprite = new Sprite(); sprite1.graphics.beginFill(0x000000, 1); sprite1.graphics.drawRect(0, 0, 100, 100); sprite1.x = 75; sprite1.y = 50; addChild(sprite1); var sprite2:Sprite = new Sprite(); sprite2.graphics.beginFill(0x0000CC, 1); sprite2.graphics.drawRect(0, 0, 200, 100); sprite2.x = 20; sprite2.y = 20; sprite1.addChild(sprite2); sprite1.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(e:MouseEvent):void { if (e.target == sprite1) trace("1 click"); if (e.target == sprite2) trace("2 click"); } } } }
__________________
Могу ошибаться... =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|