在AS3中单击MovieClip外部的事件

Fra*_*ona 0 actionscript-3 flash-cs5

有没有办法检测用户是否在MovieClip外单击?

例如,我需要检测它以关闭以前打开的菜单(如菜单栏样式:文件,版本,工具,帮助等).

在此输入图像描述

我怎样才能发现这种事件?谢谢!

Mat*_*ias 5

添加一个监听器进入舞台并检查是否stage是该事件的目标.

这里的代码示例:http: //wonderfl.net/c/eFao

package
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;

    public class FlashTest extends Sprite
    {

        private var _menu : Sprite;

        public function FlashTest()
        {
            _menu = new Sprite();
            _menu.x = 100;
            _menu.y = 100;
            _menu.alpha = 0.5;

            with(_menu.graphics)
            {
                beginFill(0xFF0000, 1);
                drawRect(0, 0, 300, 300);
                endFill();
            }

            addChild(_menu);

            _menu.addEventListener(MouseEvent.CLICK, onClickHandler);
            stage.addEventListener(MouseEvent.CLICK, onClickHandler);

        }

        private function onClickHandler(event : MouseEvent) : void
        {
            switch(event.target)
            {
                case _menu:
                    _menu.alpha = 0.5;
                    break;

                case stage:
                    _menu.alpha = 1;
                    break;
            }

        }

    }

}
Run Code Online (Sandbox Code Playgroud)