加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

as3 滤镜

发布时间:2020-12-15 06:28:34 所属栏目:百科 来源:网络整理
导读:滤镜是一些位图的效果,可以用于任何显示对象。在flashIDE中可以使用滤镜面板或使用 时间轴的ActionScipt来使用滤镜。在AS3中包括以下几种滤镜: Drop shadow(投影滤镜) Blur(模糊滤镜) Glow(发光滤镜) Belver(斜角滤镜) Gradient belvel(渐变斜角滤镜) Grad

滤镜是一些位图的效果,可以用于任何显示对象。在flashIDE中可以使用滤镜面板或使用

时间轴的ActionScipt来使用滤镜。在AS3中包括以下几种滤镜:

Drop shadow(投影滤镜)

Blur(模糊滤镜)

Glow(发光滤镜)

Belver(斜角滤镜)

Gradient belvel(渐变斜角滤镜)

Gradient glow(渐变发光滤镜)

Color matrix(颜色矩阵滤镜)

Convolution(卷积滤镜)

Displacement map(置换图滤镜)

?

1.创建滤镜:

?????? 首先要导入filters.*(例如要使用BlurFilter滤镜就要写入如下代码:import flash .filters.BlurFilter)

????? 其次创建滤镜实例:

var blur:BlurFilter = new BlurFilter(5,5,3);

????2. 应用滤镜:使用滤镜时,需要创建一个数组,将我们创建的滤镜实例粘在上面,再将

这个数组赋给显示对象的filters属性即可,代码如下:

???? var blur:BlurFilter = new BlurFilter(5,3);

??? var myFilters:Array = new Array();

?? silters.push(blur);

??? sprite.filters = myFilters;

【sprite是一个显示对象】

3.参数说明:

filters中的BlurFilters是模糊滤镜,三个参数如下所示:

blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255.0(浮点值)。??
??
blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255.0(浮点值)。??

?quality:int (default = 1) — 应用滤镜的次数。 您可以使用 BitmapFilterQuality 常数来指定品质。

4.滤镜实例:

实例说明:本实例首先绘制了一个带边框的黄色矩形,让矩形作为显示对象,对它使用

模糊滤镜,效果见附件;

AS3程序(文档类)如下:

package {
?import flash.display.Sprite;
import flash.filters.BlurFilter;
?public class Filter extends Sprite {
??public function Filter() {
???init();
??}
??////////绘制一个带蓝色边框,填充色为黄色的矩形
??private function init() {
???var sprite:Sprite = new Sprite();
???sprite.graphics.lineStyle(4,0x0000ff);
???sprite.graphics.beginFill(0xffff00);
???sprite.graphics.drawRect(150,150,230,200);
???sprite.graphics.endFill();
???addChild(sprite);
???/////创建滤镜实例及其使用滤镜的方法
???var blur:BlurFilter = new BlurFilter(5,3);
???var myFilters:Array = new Array();
???myFilters.push(blur);
???sprite.filters = myFilters;
???/////在创建数组的同时把滤镜放进去,并应用filter属性,这样一来,Flash会很高兴
???///写法如下:sprite.filter = [new BlurFilter(5,3)];
??}
?}
}

创建一个动态的投影滤镜实例,实现:矩形的投影随着鼠标和矩形的相对距离和角度而变

化====动态滤镜:

as3文档类AnimatedFilter:

package {
?import flash.display.Sprite;
?import flash.filters.DropShadowFilter;
?import flash.events.Event;


?public class AnimatedFilter extends Sprite {
??private var filter:DropShadowFilter;
??private var sprite:Sprite;
??

public function AnimatedFilter() {
???init();
??}
?

?private function init() {
???///绘制一个矩形,然后引用滤镜DropShadowFilter

?sprite = new Sprite();
???sprite.graphics.lineStyle(2,0x00ffff);
???sprite.graphics.beginFill(0xffff00);
???sprite.graphics.drawRect(-50,-50,200,200);
???sprite.graphics.endFill();
???sprite.x=250;
???sprite.y=250;
???addChild(sprite);
???filter=new DropShadowFilter(0,1,20,30);
???

addEventListener(Event.ENTER_FRAME,onEnterFrameFunc);

??}
??private function onEnterFrameFunc(event:Event) {
///???计算鼠标和矩形的相对距离distance,缩小十倍将其做为滤镜投影的偏移量

////鼠标和矩形的相对夹角作为投影的投影角度

var dx:Number = mouseX - sprite.x; ?var dy:Number = mouseY - sprite.y; ?filter.distance= - Math.sqrt(dx * dx+dy * dy)/10; ?filter.angle=Math.atan2(dx,dy) * 180/Math.PI; ?sprite.filters = [filter]; ??} ?} }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读