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画线条时就不适用了。第三种则比较麻烦不过效果是最好的。
第二种方法发光滤镜适用性最强,不过个人感觉发光看起来有点模糊看不清,这个可以通过调滤镜的属性值来调适合的值
AS3给显示对象加边框的更多相关文章
- Flash(as3) 调整显示对象颜色
在游戏开发中改变显示对象的颜色是比较常见的操作,那么除了在FlashCS中调整,AS3又提供了怎样的方式呢? ColorTransform 这个类是轻量级的应用,其构造参数如下: ColorTrans ...
- 用AS3清空容器下所有子显示对象
容器中的子显示对象分为两类: 处于显示列表中的子显示对象.被numChildren所记录的. 由容器graphics对象绘制出来的矢量图.这个矢量图不属于Shape类型,不在容器的显示列表中,不被nu ...
- 【HTML5 Canvas】计算元件/显示对象经过Matrix变换后在上级/舞台上的bounds(边界矩形rect)
如上图所示,这样的一个简单矩形,边界矩形是(x:-28, y:-35, width:152, height:128),这是在这个元件/显示对象自己的坐标空间的范围. 那么把这个放到父元件(舞台)中,再 ...
- Html-浅谈如何正确给table加边框
一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...
- 多行图片hover加边框兼容IE7+
问题: 遇到多行多列排列的图片时,hover上去加边框会把下面的图片挤到别处 ============================================================ ...
- div加边框
一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #0 ...
- Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析
上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...
- prelaod场景,用来显示资源加载进度
phaser.js的源码可以到它在github上的托管里去下载,游戏要用到的图片声音等素材资源请点击这里下载.Phaser的使用非常简单,只需要引入它的主文件,然后在页面中指定一个用来放置canvas ...
- 浅谈如何正确给table加边框
一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...
随机推荐
- JFreeChart学习
一.步骤: 创建数据集(准备数据) 根据数据集生成JFreeChart对象,并对其做相应的设置(标题,图例,x轴,Y轴,对象渲染等) 将JFreeChart对象输出到文件或者Servlet输出流等 二 ...
- java实现的23种设计模式 (个人推荐)
http://zz563143188.iteye.com/blog/1847029 mark下,个人用,大家会也可以看看写的不错.
- jquery $.each()用法
今天看到一个新的each玩法即each作为jquery的函数(平时用的大概都是用的each方法)使用: $.each([ 52, 97 ], function( index, value ) { al ...
- ZMQ设置socket选项
Name zmq_setsockopt –设置ZMQ socket的属性 Synopsis int zmq_setsockopt (void *socket, int option_name, con ...
- IT江湖
我喜欢看武侠电影,尤其的70-80年代的邵氏电影,在这个期间,邵氏公司将金庸和古老很多小说都改拍成了电影,可以说,看这些电影是一种享受,真的! 对于现实中的IT世界,也像是一个江湖,当你掌握了一些技能 ...
- lesson7:java线程池
在jdk1.5的版本中,java提供了语言级别的线程池,对于需要使用线程池的业务系统和中间件框架等提供了方便的选择.我认为线程池主要有两个方面的作用:第一就是防止因为外部条件的变化,造成线程数的瞬间飙 ...
- easyui 获取cloumns字段
var colums=datagrid.datagrid('options').columns; var frozens=datagrid.datagrid('options').frozenColu ...
- fstab的格式
# /etc/fstab/dev/hda8 swap swap defaults 0 0/dev/hda9 / ext2 defaults 1 1/dev/hda6 /wine vfat defaul ...
- C#中通过类来继承两个接口,父类实例化接口中的方法,子类继承父类,调用方法
实现了父类继承接口,父类实例化接口的方法,子类继承父类,子类调用父类的方法直接使用 代码如下: using System; using System.Collections.Generic; usin ...
- CodeFirst解决数据迁移问题
CodeFirst解决数据迁移问题 分类: 数据库 设计模式 c#2013-04-24 17:56 137人阅读 评论(0) 收藏 举报 工程用的MVC + Entity Framework,根据Co ...