AS3.0中的显示编程(七)-- 滤镜(上)

简介:

      在这篇显示编程的教程中,我不打算介绍图形绘制的相关知识。因为自己也没怎么用到过,我不习惯用AS代码来绘制图形,都是直接在舞台上绘制的。不过滤镜的相关知识,我觉得大家还是有必要了解下的,在Flash的创作中,有时能起到意想不到的效果。

      Flash提供的滤镜共有9种,分别是:

  1. 斜角滤镜(BevelFilter)
  2. 模糊滤镜(BlurFilter)
  3. 投影滤镜(DropShadowFilter)
  4. 发光滤镜(GlowFilter)
  5. 渐变斜角滤镜(GradientBevelFilter)
  6. 渐变发光滤镜(GradientGlowFilter)
  7. 颜色矩阵滤镜(ColorMatrixFilter)
  8. 卷积滤镜(ConvolutionFilter)
  9. 置换图滤镜(DisplacementMapFilter)

      其中,前面6种是简单滤镜,后面3种是复杂滤镜。所谓简单滤镜,就是可以直接在Flash的滤镜面板上直观操作的滤镜,滤镜面板如下图所示:

      clip_image002

      我的个人习惯还是偏向于舞台操作的。所以如果只需要用到这六种滤镜,又不需要制作滤镜动画的时候,我通常都是选择直接在舞台上操作的。另外要说明的是,当你接下去学习本章的时候,最好能对比着舞台上的滤镜学习,这样对效果还有滤镜的属性都会有一个比较直观的把握。

 

      (一)如何创建并应用滤镜

      首先,我们在舞台上绘制一个红色长方形。然后填入以下代码:

      var myDisplayObject = this.getChildAt(0); //获取舞台显示对象

      var filter:DropShadowFilter = new DropShadowFilter(); //创建滤镜

      var filtersArray:Array = new Array(filter); //建立滤镜数组

      myDisplayObject.filters = filtersArray; //应用滤镜

      大家可以看到,filters接受的是一个滤镜数组。如果对显示对象应用了多个滤镜,则会按照顺序,依次累积。

 

      (二)如何修改和删除滤镜

      修改滤镜时,可以重新创建滤镜数组,然后赋值给filters属性。但是不可直接在filters属性上进行数组操作。比如:

      (1) 用这种方法是正确的

      filtersArray.push(new BlurFilter());

      myDisplayObject.filters = filtersArray;

      (2) 用这种方法是错误的

      myDisplayObject.filters.push(new BlurFilter());

      大家请比较一下两者的区别。

 

      删除滤镜只需要给filters属性赋值null即可,如下:

      myDisplayObject.filters = null;

 

      (三)滤镜的工作原理

      滤镜是通过把原始对象的副本缓存为透明位图来工作的。当你对显示对象启用滤镜时,不管当前显示对象的cacheAsBitmap值是多少,都会自动转换成true。当删除所有滤镜后,才会恢复原来的值。

      既然如此,使用滤镜后,那些位图缓存的优点都会保留,而缺点同样会保留。所以我们使用滤镜时,占用内存会变大。并且要尽可能的避免对显示对象做很复杂的动画,这样对性能会有比较大的影响。

      使用滤镜时,还有两点需要注意:第一点、滤镜区域是不能做重叠判断或者点击判断的。比如对一个影片剪辑做了斜角滤镜,那么在斜角部分,重叠判断和点击判断都是无效的(影片剪辑的原始区域自然是有效的)。第二点,滤镜是不支持缩放、旋转和倾斜的。所以对滤镜的本身进行这些变化时(也要尽量避免),滤镜是不会跟着变化的。

 

      下一篇,我会为大家演示每个滤镜的效果和相应的代码。不感兴趣的朋友可以略过。










本文转自 windtoto 51CTO博客,原文链接:http://blog.51cto.com/windtoto/405059,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
图形学
小功能⭐️Unity自动更改文本框高度,以显示全部文本
小功能⭐️Unity自动更改文本框高度,以显示全部文本
|
数据安全/隐私保护 计算机视觉
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
|
前端开发
妙用滤镜构建高级感拉满的磨砂玻璃渐变背景
妙用滤镜构建高级感拉满的磨砂玻璃渐变背景
233 0
妙用滤镜构建高级感拉满的磨砂玻璃渐变背景
语法着色控件使用典型范例
语法着色控件使用典型范例
84 0
|
计算机视觉
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)二
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)二
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)二
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)二
|
计算机视觉
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【Unity3D 灵巧小知识点】☀️ | Unity控制台 输出打印不同颜色的字体
|
开发工具 C语言
Qt编写自定义控件19-图片背景时钟
一、前言 图片背景时钟控件,是全套控件中唯一的几个贴图的控件,这个背景要是不贴图,会画到猝死,必须用美工做好的图贴图作为背景,此控件以前学C#的时候写过,后面在写Qt控件的过程中把他移植过来了,其实画法完全一模一样,我能说连代码我都是直接复制粘贴过来改改的吗?所以有过多年编程经验的程序员们都知道,编程都是一通百通的,只要掌握好了一门,或者精通了一门,其他都是水到渠成的事情,基本上学习个把星期都能直接撸的那种,配合F1帮助文档和官方手册,直接手撸起来(各位别多想,是指撸代码)。
1131 0