Форум 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=189726)

FiftyStars 16.12.2012 16:44

Событие над фигурой
 
вобщем ситуация такая: есть глобальный спрайт, в нем несколько дочерних спрайтов, в каждом из которых Shape'ы.
В приемнике событий(MouseEvent'ы click и over) мне нужны localX и localY относительно каждого из дочерних спрайтов. То есть получателями событий должны быть не дочерние спрайты, а то что внутри них. Пробовал повесить событие на фигуру(Shape) ту что в дочернем спрайте. Событие не возникает. Теперь вопрос: что не так?
Код AS3:

//добавление shapeA в дочерний спрайт spriteA
spriteA.addChild(shapeA);
addChild(spriteA);
shapeA.addEventListener(MouseEvent.CLICK,clickOnShapeA);


Hauts 16.12.2012 16:47

Так вы же сами и ответили на свой вопрос. Если прочитать три последних предложения в обратном порядке.

FiftyStars 16.12.2012 16:49

Цитата:

Сообщение от Hauts (Сообщение 1110162)
Так вы же сами и ответили на свой вопрос. Если прочитать три последних предложения в обратном порядке.

О_о в смысле? О_о

iNils 16.12.2012 16:55

Порядок наследования шейпа: Shape -> DisplayObject -> EventDispatcher -> Object
Порядок наследования шейпа спрайта: Sprite -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object
А MouseEvent.CLICK является событием у InteractiveObject, который не входит в цепочку наследованиия Shape.

Hauts 16.12.2012 16:57

Оборачивайте шэйпы в спрайты и слушайте события спрайтов, в общем.

FiftyStars 16.12.2012 17:00

Цитата:

Сообщение от iNils (Сообщение 1110165)
Порядок наследования шейпа: Shape -> DisplayObject -> EventDispatcher -> Object
Порядок наследования шейпа спрайта: Sprite -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object
А MouseEvent.CLICK является событием у InteractiveObject, который не входит в цепочку наследованиия Shape.

спасибо, буду слой ивент спрайтов лепить.

СлаваRa 16.12.2012 18:08

Shape неинтерактивный, измените на Sprite детей, и с контейнера ловите события детей


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

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