AS3给显示对象加边框

时间:2022-08-30 12:58:41

给显示对象加边框,可以有以下三种方法
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画线条时就不适用了。第三种则比较麻烦不过效果是最好的。
第二种方法发光滤镜适用性最强,不过个人感觉发光看起来有点模糊看不清,这个可以通过调滤镜的属性值来调适合的值

AS3给显示对象加边框的更多相关文章

  1. Flash(as3) 调整显示对象颜色

    在游戏开发中改变显示对象的颜色是比较常见的操作,那么除了在FlashCS中调整,AS3又提供了怎样的方式呢? ColorTransform 这个类是轻量级的应用,其构造参数如下: ColorTrans ...

  2. 用AS3清空容器下所有子显示对象

    容器中的子显示对象分为两类: 处于显示列表中的子显示对象.被numChildren所记录的. 由容器graphics对象绘制出来的矢量图.这个矢量图不属于Shape类型,不在容器的显示列表中,不被nu ...

  3. 【HTML5 Canvas】计算元件/显示对象经过Matrix变换后在上级/舞台上的bounds(边界矩形rect)

    如上图所示,这样的一个简单矩形,边界矩形是(x:-28, y:-35, width:152, height:128),这是在这个元件/显示对象自己的坐标空间的范围. 那么把这个放到父元件(舞台)中,再 ...

  4. Html-浅谈如何正确给table加边框

    一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...

  5. 多行图片hover加边框兼容IE7&plus;

    问题: 遇到多行多列排列的图片时,hover上去加边框会把下面的图片挤到别处 ============================================================ ...

  6. div加边框

    一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #0 ...

  7. Cocos2d-X3&period;0 刨根问底(五)----- Node类及显示对象列表源码分析

    上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...

  8. prelaod场景,用来显示资源加载进度

    phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...

  9. 浅谈如何正确给table加边框

    一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...

随机推荐

  1. dnsunlocker解决

    环境:windows 10 中文企业版,firefox47, chrome51 安装了某个国外程序后,浏览器各种不正常,打开网页慢,或是无法打开,更严重的是会弹广告,各种广告. 然后在控制面板中卸载了 ...

  2. &lbrack;转&rsqb;Linux之type命令

    转自:http://codingstandards.iteye.com/blog/831504 用途说明 type命令用来显示指定命令的类型.一个命令的类型可以是如下之一 alias 别名 keywo ...

  3. syscolumns、sysconstraints、sysobjects

    1.根据表名查询对象ID SELECT OBJECT_ID('Production.Product') 结果:1429580131 不能作为输入参数:列名.约束名 能作为输入参数:表名 2.根据对象I ...

  4. win7打开或关闭windows功能 提示&OpenCurlyDoubleQuote;出现错误,并非所有的功能被更改”,管理员权限惹的祸

    2013-07-25 18:12:06 最近要用到windows的telnet功能,本来是很简单的事情,因为管理员权限的问题,花了不少时间,才发现是管理员权限惹的祸,更滑稽的是,自己一直以来都不是管理 ...

  5. DDctf 新得

    滴这道题当时做的时候只做到了看到index.php的源码 当时给了一个博客的提示猜到是swp的那个 但是没有想到是里面的 文件就没有做了,然后在看了wp过后就明白了 访问博客我文章里面的文章里面的pr ...

  6. 使用SpringBoot配置了 server&period;servlet&period;path后无效的解决方案

    一.问题描述 使用SpringBoot配置了 server.servlet.path后无效,访问时无法通过:http://127.0.0.1:8080/app/hello.html 访问. 二.解决方 ...

  7. QT&lowbar;QSlider的总结

    当鼠标选中QSlider 上时,通过点击的数值为setpageStep():通过左右方向键按钮移动的数值为setsingleStep(). 鼠标滚轮上面两者都不行,不知道是什么原因! 应用: http ...

  8. 跟我一起写Makefile&colon;使用函数

    跟我一起写Makefile:使用函数 两个排版不一样 书籍下载 书籍下载

  9. kubeadm 线上集群部署&lpar;二&rpar; K8S Master集群安装以及工作节点的部署

    PS:所有机器主机名请提前设置好 在上一篇,ETCD集群我们已经搭建成功了,下面我们需要搭建master相关组件,apiverser需要与etcd通信并操作 1.配置证书 将etcd证书上传到mast ...

  10. SSH安全登陆原理:密码登陆与公钥登陆

      SSH全称(Secure SHell)是一种以安全性闻名的应用层网络通信协议,用于计算机间的安全通信,是目前比较成熟的远程登陆解决方案. 它提供两种方法登陆: 1.密码登陆 2.公钥登陆   密码 ...