Flash8AS做滤镜效果的类别整理

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

用as做滤镜效果,每种滤镜效果对应一个类别,这些类别将来会在Macromedia\Flash 8\语系\First Run\Classes\FP8\flash\filters 这个资料夹中找到说明档

一、渐变斜角――GradientBevelFilter类别

二、投影――DropShadowFilter类别

三、模煳――BlurFilter类别(这个最容易了,参数少)

四、光晕――GlowFilter类别

五、渐层光晕――GradientGlowFilter类别

六、斜角――BevelFilter类别

做法是用new关键字新建一个相应类的对象,暂时就叫myfilters吧,然后把这个对象增加进一个数组filters_array,最后把这个数组赋值给mc的fliters属性,大功告成。

我想其中关键应该就是建立对像时如何设定里面的参数吧,我想滤镜的面板大家都很熟悉的了,那么,我就把as增加滤镜的一些参数和它们的面板相对照,这样可能更容易理解。

下面逐个举例(都是辅助里的范例啦,里面的参数名字都是可以改的,不过我觉得就用那些名字就蛮好),范例里都有函数setUpFlatRectangle(也有叫createRectangle的),是用来做一个方形mc的。

functionsetUpFlatRectangle(w:Number,h:Number,bgColor:Number,name:String):MovieClip{

varmc:MovieClip=this.createEmptyMovieClip(name,this.getNextHighestDepth());

mc.beginFill(bgColor);

mc.lineTo(w,0);

mc.lineTo(w,h);

mc.lineTo(0,h);

mc.lineTo(0,0);

returnmc;

}

直接把Script复制到主场景的第一影格就ok了,不要忘记上面的函数哦,要注意改函数名的

一、渐变斜角――GradientBevelFilter类别

Script:

importflash.filters.GradientBevelFilter;

importflash.filters.BitmapFilter;

varart:MovieClip=setUpFlatRectangle(150,150,0xCCCCCC,"gradientBevelFilterExample");

//建立新的mc,实例名:art

vardistance:Number=5;

varangleInDegrees:Number=225;//opposite45degrees

varcolors:Array=[0xFFFFFF,0xCCCCCC,0x000000];

varalphas:Array=[1,0,1];

varratios:Array=[0,128,255];

varblurX:Number=8;

varblurY:Number=8;

varstrength:Number=2;

varquality:Number=3;

vartype:String="inner";

varknockout:Boolean=true;//设定各个参数

varfilter:GradientBevelFilter=newGradientBevelFilter(distance,angleInDegrees,colors,alphas,ratios,blurX,blurY,strength,quality,type,knockout);//建立斜角滤镜对像filter

varfilterArray:Array=newArray();

filterArray.push(filter);//把filter增加进数组filterArray,如果art上有多个滤镜效果,就直接增加进这个数组好了

art.filters=filterArray;//将art的filters属性设定为filterArray

下面是Script中的参数和面板中的参数对比

colors、alphas、ratios用来控制渐变颜色的,colors是色彩,alphas是百分比(这里面是0~1的小数),ratios是偏移量0~255(可以参考Color类)blurX、blurY是就对应面板里的模煳x、模煳y。strength是面板里的强度,是0~255的数;quality是品质,只有1、2、3分别对应低、中、高distance是距离,预设4.0;type是类型,用字串表示,范例中的」inner」是内侧,还有outer、fuller;knockout是个布尔值,表示是否挖空

二、投影――DropShadowFilter类别

importflash.filters.DropShadowFilter;

varart:MovieClip=createRectangle(100,100,0x003366,"gradientGlowFilterExample");

vardistance:Number=20;

varangleInDegrees:Number=45;

varcolor:Number=0x000000;

varalpha:Number=0.8;

varblurX:Number=16;

varblurY:Number=16;

varstrength:Number=1;

varquality:Number=3;

varinner:Boolean=false;

varknockout:Boolean=false;

varhideObject:Boolean=false;

varfilter:DropShadowFilter=newDropShadowFilter(distance,angleInDegrees,color,alpha,blurX,blurY,strength,quality,inner,knockout,hideObject);

varfilterArray:Array=newArray();

filterArray.push(filter);

art.filters=filterArray;

下面是Script中的参数和面板中的参数对比

Distance是距离;

angleInDegrees是角度0~360

blurX、blurY是模煳x、模煳y

strength是强度,Script里是0~5的数

quality是品质,只能是1、2、3,分别对应低、中、高

inner是内侧阴影

knockout是挖空

hideObject是隐藏对像

三、模煳――BlurFilter类别(这个最容易了,参数少嘛)

importflash.filters.BlurFilter;

varrect:MovieClip=createRectangle(100,100,0x003366,"BlurFilterExample");

varblurX:Number=30;

varblurY:Number=30;

varquality:Number=3;

varfilter:BlurFilter=newBlurFilter(blurX,blurY,quality);

varfilterArray:Array=newArray();

filterArray.push(filter);

rect.filters=filterArray;

四、发光――GlowFilter类别

importflash.filters.GlowFilter;

varrect:MovieClip=createRectangle(100,100,0x003366,"gradientGlowFilterExample");

varcolor:Number=0x33CCFF;

varalpha:Number=.8;

varblurX:Number=35;

varblurY:Number=35;

varstrength:Number=2;

varquality:Number=3;

varinner:Boolean=false;

varknockout:Boolean=false;

varfilter:GlowFilter=newGlowFilter(color,alpha,blurX,blurY,strength,quality,inner,knockout);

varfilterArray:Array=newArray();

filterArray.push(filter);

rect.filters=filterArray;

五、渐变发光――GradientGlowFilter类别

importflash.filters.GradientGlowFilter;

varart:MovieClip=createRectangle(100,100,0x003366,"gradientGlowFilterExample");

vardistance:Number=0;

varangleInDegrees:Number=45;

varcolors:Array=[0xFFFFFF,0xFF0000,0xFFFF00,0x00CCFF];

varalphas:Array=[0,1,1,1,1];

varratios:Array=[0,63,126,255];

varblurX:Number=50;

varblurY:Number=50;

varstrength:Number=2.5;

varquality:Number=3;

vartype:String="outer";

varknockout:Boolean=false;

varfilter:GradientGlowFilter=newGradientGlowFilter(distance,angleInDegrees,colors,alphas,ratios,blurX,blurY,strength,quality,type,knockout);

varfilterArray:Array=newArray();

filterArray.push(filter);

art.filters=filterArray;

这里的参数跟光晕的类别很像,需要说明的就是用来设定颜色的那几个数组里的4项依次是表示从外到内的颜色的

六、斜角――BevelFilter类别

importflash.filters.BevelFilter;

vardistance:Number=5;

varangleInDegrees:Number=45;

varhighlightColor:Number=0xFFFF00;

varhighlightAlpha:Number=1;

varshadowColor:Number=0x0000FF;

varshadowAlpha:Number=1;

varblurX:Number=10;

varblurY:Number=10;

varstrength:Number=2;

varquality:Number=3;

vartype:String="inner";

varknockout:Boolean=false;

varfilter:BevelFilter=newBevelFilter(distance,angleInDegrees,highlightColor,highlightAlpha,shadowColor,shadowAlpha,blurX,blurY,strength,quality,type,knockout);

varrect:MovieClip=createRectangle(100,100,0x00CC00,"bevelFilterExample");

rect.filters=newArray(filter);

参数:

highlightColor、highlightAlpha设定加亮颜色

shadowColor、shadowAlpha设定阴影颜色

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有