zoukankan      html  css  js  c++  java
  • AS3给显示对象加边框

    给显示对象加边框,可以有以下三种方法
    1.根据相交路径的缠绕规则的奇偶规则法(使用奇偶缠绕规则时,任何相交路径都交替使用开放填充与闭合填充。如果使用同一填充绘制的两个正方形相交,则不会填充相交的区域。通常,相邻区域不会都填充或都不填充。)
        画两个图形使一个图形包含另一个图形,使包含在里面的图形区域不填充来形成一个挖空的边框

       outline.graphics.beginFill(lineColor, lineAlpha);
       outline.graphics.drawRect(0, 0, vw, vh);
       outline.graphics.drawRect(thickness, thickness, vw - thickness*2, vh - thickness*2);
       outline.graphics.endFill();

    2.利用发光滤镜,将滤镜的是否挖空的参数设为true

     outline.filters=[new GlowFilter(lineColor,1,4,4,20,1,false,true)];
     outline.graphics.beginFill(lineColor, lineAlpha);
     outline.graphics.drawRect(0, 0, vw, vh);
     outline.graphics.endFill();

       
    3.利用混合模式的BlendMode.ERASE模式(使用ERASE时,其父容器的混合模式要设为BlendMode.LAYER)
        例如有两个图形:outline1,outline2,两个图形添加到同一个父容器中,然后设置将要擦除的那个对象的混合模式为BlendMode.ERASE,
        这样就能擦除重叠部分形成一个边框

        outline.blendMode=BlendMode.LAYER;
            if(outline1==null){
                outline1=new Shape();    
            }
            if(outline2==null){
                outline2=new Shape();
                outline2.blendMode=BlendMode.ERASE;
            }
            if(!outline.contains(outline1)){
                outline.addChild(outline1);
            }
                
            if(!outline.contains(outline2)){
                outline.addChild(outline2);
            }
            //draw outline1
            outline1.graphics.beginFill(lineColor, lineAlpha);
            outline1.graphics.drawRect(0, 0, vw, vh);
            outline1.graphics.endFill();
            //draw outline2
            outline2.graphics.beginFill(lineColor, lineAlpha);
            outline2.graphics.drawRect(thickness, thickness, vw - thickness*2, vh - thickness*2);
            outline2.graphics.endFill();

    这三种方法中第一种是最简单的,不过如果有一个不规则的形状或用lineStyle画线条时就不适用了。第三种则比较麻烦不过效果是最好的。
    第二种方法发光滤镜适用性最强,不过个人感觉发光看起来有点模糊看不清,这个可以通过调滤镜的属性值来调适合的值
           

  • 相关阅读:
    xml 转义特殊字符
    MySql按周,按月,按日分组统计数据
    js jquery 动态添加表格
    详解Oracle partition分区表
    DBMS_NETWORK_ACL_ADMIN (OCP 053 第七题)
    RMAN 的优缺点及RMAN 备份及恢复步骤
    完美解决xhost +报错: unable to open display "" 装oracle的时候总是在弹出安装界面的时候出错
    Linux系统(X64)7 安装Oracle11g完整安装图文教程另附基本操作
    11g新特性-SQL Plan Management
    Oracle中事务处理控制用法
  • 原文地址:https://www.cnblogs.com/skybdemq/p/3534113.html
Copyright © 2011-2022 走看看