flash actionscript30 ConvolutionFilter.docx

上传人:b****5 文档编号:8280805 上传时间:2023-01-30 格式:DOCX 页数:17 大小:23.14KB
下载 相关 举报
flash actionscript30 ConvolutionFilter.docx_第1页
第1页 / 共17页
flash actionscript30 ConvolutionFilter.docx_第2页
第2页 / 共17页
flash actionscript30 ConvolutionFilter.docx_第3页
第3页 / 共17页
flash actionscript30 ConvolutionFilter.docx_第4页
第4页 / 共17页
flash actionscript30 ConvolutionFilter.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

flash actionscript30 ConvolutionFilter.docx

《flash actionscript30 ConvolutionFilter.docx》由会员分享,可在线阅读,更多相关《flash actionscript30 ConvolutionFilter.docx(17页珍藏版)》请在冰豆网上搜索。

flash actionscript30 ConvolutionFilter.docx

flashactionscript30ConvolutionFilter

ConvolutionFilter

属性 |方法 |事件 |样式 |效果 |常量 |示例

 

flash.filters

publicclassConvolutionFilter

继承

ConvolutionFilter

BitmapFilter

Object

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

ConvolutionFilter类应用矩阵盘绕滤镜效果。

卷积将输入图像的像素与相邻的像素合并以生成图像。

通过卷积,可以实现大量的图像效果,包括模糊、边缘检测、锐化、浮雕和斜角。

您可以将滤镜应用于任何显示对象(即,从DisplayObject类继承的对象),例如MovieClip、SimpleButton、TextField和Video对象,以及BitmapData对象。

若要创建卷积滤镜,请使用语法newConvolutionFilter()。

滤镜的具体使用取决于要应用滤镜的对象:

∙若要对影片剪辑、文本字段、按钮和视频应用滤镜,请使用filters属性(继承自DisplayObject)。

设置对象的filters属性不会修改相应的对象,而清除filters属性可以删除相应的滤镜。

∙若要对BitmapData对象应用滤镜,请使用BitmapData.applyFilter()方法。

对BitmapData对象调用applyFilter()会取得源BitmapData对象和滤镜对象,并最终生成一个过滤图像。

如果对显示对象应用滤镜,则该对象的cacheAsBitmap属性值将设置为true。

如果清除所有滤镜,将恢复cacheAsBitmap的原始值。

如果结果图像的宽度或高度超过2880像素,则不应用滤镜。

例如,如果您在放大某个大型影片剪辑时应用了滤镜,则在结果图像超过2880像素的限制时滤镜将关闭。

另请参见

flash.display.BitmapData.applyFilter()

flash.display.DisplayObject.filters

flash.display.DisplayObject.cacheAsBitmap

matrix

公共属性

 

属性

定义方

 

 

alpha:

Number

替换颜色的Alpha透明度值。

ConvolutionFilter

 

 

bias:

Number

要添加到矩阵转换结果中的偏差量。

ConvolutionFilter

 

 

clamp:

Boolean

指示是否应锁定图像。

ConvolutionFilter

 

 

color:

uint

要替换源图像之外的像素的十六进制颜色。

ConvolutionFilter

 

constructor:

Object

对类对象或给定对象实例的构造函数的引用。

Object

 

 

divisor:

Number

矩阵转换中使用的除数。

ConvolutionFilter

 

 

matrix:

Array

用于矩阵转换的值的数组。

ConvolutionFilter

 

 

matrixX:

Number

矩阵的x维度(矩阵中列的数目)。

ConvolutionFilter

 

 

matrixY:

Number

矩阵的y维度(矩阵中行的数目)。

ConvolutionFilter

 

 

preserveAlpha:

Boolean

指示是否已保留Alpha通道并且不使用滤镜效果,或是否对Alpha通道以及颜色通道应用卷积滤镜。

ConvolutionFilter

 

prototype:

Object

[静态]对类或函数对象的原型对象的引用。

Object

公共方法

 

方法

定义方

 

 

ConvolutionFilter(matrixX:

Number=0,matrixY:

Number=0,matrix:

Array=null,divisor:

Number=1.0,bias:

Number=0.0,preserveAlpha:

Boolean=true,clamp:

Boolean=true,color:

uint=0,alpha:

Number=0.0)

用指定参数初始化ConvolutionFilter实例。

ConvolutionFilter

 

 

clone():

BitmapFilter

返回此滤镜对象的副本。

ConvolutionFilter

 

hasOwnProperty(name:

String):

Boolean

指示对象是否已经定义了指定的属性。

Object

 

isPrototypeOf(theClass:

Object):

Boolean

指示Object类的实例是否在指定为参数的对象的原型链中。

Object

 

propertyIsEnumerable(name:

String):

Boolean

指示指定的属性是否存在、是否可枚举。

Object

 

setPropertyIsEnumerable(name:

String,isEnum:

Boolean=true):

void

设置循环操作动态属性的可用性。

Object

 

toString():

String

返回指定对象的字符串表示形式。

Object

 

valueOf():

Object

返回指定对象的原始值。

Object

属性详细信息

alpha

属性

alpha:

Number  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

替换颜色的Alpha透明度值。

有效值为0到1.0。

默认值为0。

例如,0.25设置透明度值为25%。

实现

    publicfunctiongetalpha():

Number

    publicfunctionsetalpha(value:

Number):

void

bias

属性

 

bias:

Number  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

要添加到矩阵转换结果中的偏差量。

偏差可增加每个通道的颜色值,以便暗色变得较明亮。

默认值为0。

实现

    publicfunctiongetbias():

Number

    publicfunctionsetbias(value:

Number):

void

clamp

属性

 

clamp:

Boolean  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

指示是否应锁定图像。

对于源图像之外的像素,如果值为true,则表明通过复制输入图像每个相应的边缘处的颜色值,沿着输入图像的每个边框按需要扩展输入图像。

如果值为false,则表明应按照color和alpha属性中的指定使用其它颜色。

默认值为true。

实现

    publicfunctiongetclamp():

Boolean

    publicfunctionsetclamp(value:

Boolean):

void

示例

以下示例使用BitmapData类创建两个框,其中一个框的大小是另一个框的一半。

在首次加载该示例时,将使用attachBitmap()在mc内绘制较大的框。

在单击mc并调用applyFilter()方法时,将会在smallBox作为源位图的基础上重绘BitmapData的largeBox实例。

由于applyFilter()会将smallBox绘制在Rectangle上,而后者的宽度和高度被指定为largeBox的宽度和高度,因此源位图要比绘制区域更小。

在本例中,ConvolutionFilter的clamp属性被设置为false,未被源位图smallBox覆盖的区域是由clampColor和clampAlpha变量确定的纯红色。

package{

importflash.display.Sprite;

importflash.display.BitmapData;

importflash.filters.ConvolutionFilter;

importflash.text.TextField;

importflash.geom.Rectangle;

importflash.geom.Point;

publicclassConvolutionClampExampleextendsSprite{

//Variablesthataffectclamping:

varclamp:

Boolean=false;

varclampColor:

Number=0xFF0000;

varclampAlpha:

Number=1;

//Forillustration,keepotherConvolutionFiltervariablesneutral:

varbias:

Number=0;

varpreserveAlpha:

Boolean=false;

//Also,constructaneutralmatrix

varmatrixCols:

Number=3;

varmatrixRows:

Number=3;

varmatrix:

Array=[1,1,1,

1,1,1,

1,1,1];

varfilter:

ConvolutionFilter=newConvolutionFilter(matrixCols,matrixRows,matrix,matrix.length,bias,preserveAlpha,clamp,clampColor,clampAlpha);

varlargeBoxWidth:

Number=100;

varlargeBoxHeight:

Number=100;

varlargeBox:

BitmapData=newBitmapData(largeBoxWidth,largeBoxWidth,true,0xCC00FF00);

varsmallBoxWidth:

Number=largeBoxWidth/2;

varsmallBoxHeight:

Number=largeBoxHeight/2;

varsmallBox:

BitmapData=newBitmapData(smallBoxWidth,smallBoxWidth,true,0xCC0000FF);

varmc:

MovieClip=this.createEmptyMovieClip("mc",this.getNextHighestDepth());

mc.attachBitmap(largeBox,this.getNextHighestDepth());

mc.onPress=function(){

largeBox.applyFilter(smallBox,

newRectangle(0,0,largeBoxWidth,largeBoxHeight),

newPoint(0,0),

filter);

}

}

}

color

属性

 

color:

uint  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

要替换源图像之外的像素的十六进制颜色。

它是一个没有Alpha成分的RGB值。

默认值为0。

实现

    publicfunctiongetcolor():

uint

    publicfunctionsetcolor(value:

uint):

void

divisor

属性

 

divisor:

Number  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

矩阵转换中使用的除数。

默认值为1。

如果除数是所有矩阵值的总和,则可调平结果的总体色彩强度。

忽略0值,此时使用默认值。

实现

    publicfunctiongetdivisor():

Number

    publicfunctionsetdivisor(value:

Number):

void

matrix

属性

 

matrix:

Array  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

用于矩阵转换的值的数组。

数组中的项数必须等于matrixX*matrixY。

矩阵盘绕基于一个nxm矩阵,该矩阵说明输入图像中的给定像素值如何与其相邻的像素值合并以生成最终的像素值。

每个结果像素通过将矩阵应用到相应的源像素及其相邻像素来确定。

对于3x3矩阵卷积,将以下公式用于每个独立的颜色通道:

dst(x,y)=((src(x-1,y-1)*a0+src(x,y-1)*a1....

src(x,y+1)*a7+src(x+1,y+1)*a8)/divisor)+bias

某些规格的滤镜在由提供SSE(SIMD流扩展)的处理器运行时执行速度更快。

以下是更快的卷积操作的条件:

∙滤镜必须是3x3滤镜。

∙所有滤镜项必须是介于-127和+127之间的整数。

∙所有滤镜项的总和不能包含大于127的绝对值。

∙如果任何滤镜项为负,则除数必须介于2.00001和256之间。

∙如果所有滤镜项都为正,则除数必须介于1.1和256之间。

∙偏差必须是整数。

注意:

如果使用不带参数的构造函数创建了ConvolutionFilter实例,则为矩阵属性赋值的顺序将影响滤镜的行为。

在以下情况中,矩阵数组已指定,而matrixX和matrixY属性仍设置为0(默认值):

publicvarmyfilter:

ConvolutionFilter=newConvolutionFilter();

myfilter.matrix=[0,0,0,0,1,0,0,0,0];

myfilter.matrixX=3;

myfilter.matrixY=3;

在以下情况中,矩阵数组已指定,而matrixX和matrixY属性设置为3:

publicvarmyfilter:

ConvolutionFilter=newConvolutionFilter();

myfilter.matrixX=3;

myfilter.matrixY=3;

myfilter.matrix=[0,0,0,0,1,0,0,0,0];

实现

    publicfunctiongetmatrix():

Array

    publicfunctionsetmatrix(value:

Array):

void

引发

TypeError—设置时Array为null

matrixX

属性

 

matrixX:

Number  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

矩阵的x维度(矩阵中列的数目)。

默认值为0。

实现

    publicfunctiongetmatrixX():

Number

    publicfunctionsetmatrixX(value:

Number):

void

matrixY

属性

 

matrixY:

Number  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

矩阵的y维度(矩阵中行的数目)。

默认值为0。

实现

    publicfunctiongetmatrixY():

Number

    publicfunctionsetmatrixY(value:

Number):

void

preserveAlpha

属性

 

preserveAlpha:

Boolean  [读写]

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

指示是否已保留Alpha通道并且不使用滤镜效果,或是否对Alpha通道以及颜色通道应用卷积滤镜。

值为false表示卷积应用于所有通道,包括Alpha通道。

值为true表示只对颜色通道应用卷积。

默认值为true。

实现

    publicfunctiongetpreserveAlpha():

Boolean

    publicfunctionsetpreserveAlpha(value:

Boolean):

void

构造函数详细信息

ConvolutionFilter

()

构造函数

publicfunctionConvolutionFilter(matrixX:

Number=0,matrixY:

Number=0,matrix:

Array=null,divisor:

Number=1.0,bias:

Number=0.0,preserveAlpha:

Boolean=true,clamp:

Boolean=true,color:

uint=0,alpha:

Number=0.0)

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

用指定参数初始化ConvolutionFilter实例。

参数

matrixX:

Number(default=0)—矩阵的x维度(矩阵中列的数目)。

默认值为0。

 

matrixY:

Number(default=0)—矩阵的y维度(矩阵中行的数目)。

默认值为0。

 

matrix:

Array(default=null)—用于矩阵转换的值的数组。

数组中的项数必须等于matrixX*matrixY。

 

divisor:

Number(default=1.0)—矩阵转换中使用的除数。

默认值为1。

如果除数是所有矩阵值的总和,则可调平结果的总体色彩强度。

忽略0值,此时使用默认值。

 

bias:

Number(default=0.0)—要添加到矩阵转换结果的偏差。

默认值为0。

 

preserveAlpha:

Boolean(default=true)—false值表示未保留Alpha值,并且卷积适用于所有通道(包括Alpha通道)。

值为true表示只对颜色通道应用卷积。

默认值为true。

 

clamp:

Boolean(default=true)—对于源图像之外的像素,如果值为true,则表明通过复制输入图像给定边缘处的颜色值,沿着输入图像的每个边框按需要扩展输入图像。

如果值为false,则表明应按照color和alpha属性中的指定使用其它颜色。

默认值为true。

 

color:

uint(default=0)—要替换源图像之外的像素的十六进制颜色。

 

alpha:

Number(default=0.0)—替换颜色的Alpha。

方法详细信息

clone

()

方法

overridepublicfunctionclone():

BitmapFilter

语言版本:

 

ActionScript3.0

运行时版本:

 

AIR1.0,FlashPlayer9

返回此滤镜对象的副本。

返回

BitmapFilter—BitmapFilter,与原始ConvolutionMatrixFilter实例具有完全相同的属性的新ConvolutionFilter实例。

示例如何使用示例

以下示例将不同的卷积滤镜应用于图像文件。

滤镜构造函数调用buildChild()四次,以加载和显示图像的四个实例。

对buildChild()的每次调用都将函数作为参数,该函数不对第一个实例应用任何滤镜,而对后续的每个实例应用不同的卷积滤镜。

buildChild()函数创建一个名为loader的新Loader对象。

每次调用buildChild()时,将一个事件侦听器附加到Loader对象,以侦听complete事件,这些事件由传递给buildChild()的函数处理。

applyBrightness()、applySharpness()和applyOutline()函数使用matrix数组的不同值来实现不同的ConvolutionFilter效果。

注意:

为获得最佳效果,请使用宽度约为80像素的图像。

图像文件的名称和位置应与您传递给url属性的值相匹配。

例如,此示例中传递给url的值指向名为“Image.jpg”的图像文件,该图像文件与SWF文件位于同一目录中。

package{

importflash.display.DisplayObject;

importflash.display.Loader;

importflash.dis

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1