AS3 mouseChildren = false为子项添加事件侦听器

时间:2011-05-18 21:41:24

标签: actionscript-3 events mouseevent

我在闪光灯下方有两个按下按钮。在我使用的对象上添加这些事件侦听器:

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 个答案:

答案 0 :(得分:3)

你不能放下:

this.mouseChildren = true;

扩展补间的onComplete函数内部

然后:

this.mouseChildren = false;

收缩补间的onComplete函数内部?

只有当菜单扩展时,才能在这些孩子上启用鼠标。