1,在很多情况下,无论是操作系统,一般应用软件,还是游戏,多多少少需要一个等待的蒙板.一般运用在请求数据的时候.以下 主要涉及AS3的蒙板.

2,我今天写这篇关于AS3的蒙板的博文是因为:昨天,我在实现蒙板的时候,居然发现蒙板下面控件元素本应该被蒙住,但居然可以接收Mouse事件.巨汗啊j_0004.gif.后来搞了半天,查Google,问了下同事才解决.

以前,蒙板都是已经写好的类,我没大注意观察里面的细节.另外,也是因为我写AS3代码有个习惯,那就是,只要是哪个控件不需要Mouse事件,我就会把它的MouseChildren 和 mouseEnabled 设为false.让其整体不接收Mouse事件.问题就在这,AS3在一些B_0026.gif情况下支持事件传输:当我把蒙板让其不接收事件时(实际上,我也没有写事件侦听),Mouse事件会传到下面的被蒙的控件.再次巨汗.所以,不设置 mouseEnabled(默认为true)的话,才是正确的,习惯有时候害死人啊.

另外,还有个 小细节 , 那就是: 蒙板 一定要 放在被蒙控件的最上面(置顶),奉上 置顶方案:

/**
 * 置顶
 * */
public function springToTop($dis : DisplayObject ) : void{
    if($dis != null && $dis.parent != null){
        var $max : uint = $dis.parent.numChildren;
        if($dis.parent.getChildIndex($dis) < $max - 1){
            $dis.parent.setChildIndex($dis,$max-1);
        }
    }
}