日期:2014-02-23  浏览次数:20732 次

作者:网易学院教授Allan

Flash 8 最明显的变化是吸收了Director中的位图操作功用,非常棒的功用,让Flash动画也能支持位图的实时运算,再也不用借助于各种Mask去模仿位图特效了。Flash8本身的ActionScript也内置了几款常用的Filter Class滤镜类,包括有Blur (模糊),Bevel(浮雕),DropShadow(暗影),GlowFilter(发光)等,通过简单的AS语法也能快速操作位图达到我们想要的实时特效,今天首先尝试的时候Blur Filter模糊滤镜。

打开Flash 8,在Stage中导入要操作的图片,并为MC其命名为myPic_mc;

在第一帧上使用以下代码:

import flash.filters.BlurFilter;

//导入BlurFilter 的package

var myBlurfilter:BlurFilter = new BlurFilter(60, 60, 1);

/*

建立flash.filters.BlurFilter的实例,使用方法为

var myInstanceName: BlurFilter= new BlurFilter(blurX:Number, blurY:Number, quality:Number);

blurX和blurY模糊值分别指的是画面横向和纵向的模糊强度,范围从1~100;

quality指的是模糊渲染的质量,范围从1~15,默认值为1质量较低,2质量居中,当为3时质量接近Photoshop中的高斯模糊(Gaussian blur),已属较高质量,在大多数使用当中使用1~3的值即可,太高将影响运算效率。

*/

var filterArray:Array = new Array();

filterArray.push(myBlurfilter);

//向filterArray数组新增一个滤镜对象

myPic_mc.filters = filterArray;

/*

在新版Flash 8中,movieClip Class曾经添加新的方法filters用于使用滤镜对象,但filters方法不直接接收滤镜对象,必须先将滤镜对象装入一个对象数组,再使用于MovieClip,当然,装入对象数组后的滤镜对象也可以通过数组直接修正滤镜对象的属性,例如:

filterArray[0].blurX=10;

filterArray[0].blurY=10;

将blurX,blurY的值重置为10

*/

以此类推,对于其它滤镜,也能方便的通过此方法用AS简单实现。绝对于MovieClip的Filter方法, Flash8中的bitmapdata对象则提供了更为强大的对位图操作的功用,bitmapdata除了使用滤镜对象外,通过象素及色彩控制,可以完全创建属于本人的更为丰富的滤镜特效,当前的Flash资源站上肯定将出现一类叫“Flash滤镜”下载了。