AS3 mouseChildren = false добавить прослушиватели событий для детей - PullRequest
2 голосов
/ 19 мая 2011

У меня есть выпадающий список с двумя выпадающими кнопками. На объекте, который я использую, добавьте слушателей событий:

addEventListener(MouseEvent.MOUSE_OVER, expand);
addEventListener(MouseEvent.MOUSE_OUT, contract);

public function expand(evt:MouseEvent):void
        {
            if(!expanded)
            {
                TweenMax.to(this.back, 0.15, {height:82, onComplete:function(){
                    music.alpha = 1;
                    music.y = 32;
                    quit.alpha = 1;
                    quit.y = 55;
                }});
                expanded = true;
            }
        }

    public function contract(evt:MouseEvent):void
    {
        if(expanded)
        {
            this.music.alpha = 0;
            this.music.y = 0 - this.height;
            this.quit.alpha = 0;
            this.quit.y = 0 - this.height;
            TweenMax.to(this.back, 0.15, {height:0});
            expanded = false;
        }
    }

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

this.mouseChildren = false;

Теперь я хочу, чтобы две кнопки в раскрывающемся меню были активными и вызывали различные события, но, поскольку mouseChildren установлен в false, он не будет прослушивать события. Как я могу назначить события дочерним объектам моего объекта, чтобы функция расширения, контракта не прерывалась взаимодействием этих двух дочерних элементов?

Спасибо, Бреннан

1 Ответ

3 голосов
/ 19 мая 2011

Разве вы не можете просто поместить:

this.mouseChildren = true;

внутри функции onComplete для анимации расширения

и затем:

this.mouseChildren = false;

внутри onCompleteфункция для вашей анимации сокращения?

Это включит мышь для этих детей только при расширении меню.

...