Инициировать событие от ребенка к родителю в AS3 - PullRequest
0 голосов
/ 31 октября 2011

У меня есть мувиклип с функцией MouseEvent, связанной с событием CLICK. Внутри этого мувиклипа у меня есть TextField.

Итак, когда я нажимаю на свой MovieClip, обработчик работает нормально. Теперь мне нужно то же поведение, когда я нажимаю на это TextField, но без изменения моей функции обработчика. Я имею в виду, я не хочу менять e.target на e.target.parent, если пользователь нажал на TextField вместо MovieClip.

Как я могу это сделать?

Часть моего исходного кода:

public function Main(){
   var m = new menu();
   menuMng.addChild(m);
   m.addEventListener(MouseEvent.CLICK, openMenu);
}

private function openMenu(e:MouseEvent):void{
   // Do some stuff
}

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 31 октября 2011

Это довольно распространенный вопрос - вы можете использовать свойство event.currentTarget вместо event.target для ссылки на объект, к которому вы добавили прослушиватель событий.

Для более подробного ответа проверьте этот вопрос (не беспокойтесь о его аспекте Flex - это относится к стандартному поведению Actionscript 3): В чем разница между целью и текущей целью в гибком канале?

1 голос
/ 31 октября 2011

Вы можете исправить проблему, установив для свойства mouseChildren значение false в MovieClip m. В этом случае нажатие на текстовое поле вызовет MouseEvent, как если бы пользователь нажал на m. Для наглядности:

var m = new menu();
m.mouseChildren = false;
...

Надеюсь, это будет вам полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...