好文档 - 专业文书写作范文服务资料分享网站

Flash ActionScript2.0教程

天下 分享 时间: 加入收藏 我要投稿 点赞

i=-1; } if(filter.alpha < 3){ j =0.1; } else if(filter.alpha >8){ j=-0.1; } filter.blurX += i; filter.blurY += i; filter.color = random(16000000); filter.alpha += j; my_mc.filters = [filter]; } 4. 渐变发光滤镜:GradientGlowFilter 构造函数:

var filter:GradientGlowFilter = new GradientGlowFilter(distance,angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);

参数:

distance:― 光晕的偏移距离。默认值为 4。

angle:― 角度,以度为单位。有效值为 0 到 360。默认值是 45。

colors: ― 定义渐变的颜色的数组。例如,红色为 0xFF0000,蓝色为 0x0000FF,依此类推。 alphas: ― colors 数组中对应颜色的 Alpha 透明度值的数组。数组中每个元素的有效值为 0 到 1。例如,值为 .25 设置 Alpha 透明度值为 25%。

ratios: ― 颜色分布比例的数组。有效值为 0 到 255。该值定义宽度的百分比,颜色采样率为 100%。

blurX: ― 水平模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

blurY:― 垂直模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

strength: ― 压印或跨页的强度。该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。有效值为 0 到 255。值越大,压印越强。值为 0 意味着未应用滤镜。默认值是 1。

quality: ― 应用滤镜的次数。有效值为 0 到 15。默认值是 1,它表示低品质。值为 2 表示中等品质,值为 3 表示高品质。

type: ― 滤镜效果的放置。可能的值包括: \:对象外缘上的发光

\:对象内缘上的发光;默认值 \:对象顶部的发光 效果: 代码: import flash.filters.* var filter:GradientGlowFilter = new GradientGlowFilter(); filter.colors = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF]; filter.alphas = [0.3, 0.5, 0.5, 0.5]; filter.ratios = [0, 63, 126, 255]; filter.blurX = 50; filter.blurY = 50; filter.type = \my_mc.filters = [filter]; 5. 斜角滤镜:BevelFilter(斜角滤镜可产生三维效果。) 构造函数:

var filter:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor,

highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout);

参数:

distance:― 斜角的偏移距离,以像素为单位(浮点)。默认值是 4。 angle:― 斜角的角度,0 至 360 度。默认值是 45。

highlightColor:― 斜角的加亮颜色 0xRRGGBB 。默认值是 0xFFFFFF。

highlightAlpha: ―加亮颜色的 Alpha 透明度值。有效值为 0 到 1。例如,.25 设置透明度值为 25%。默认值是 1。

shadowColor:― 斜角的阴影颜色 0xRRGGBB 。默认值是 0x000000。

shadowAlpha: ― 阴影颜色的 Alpha 透明度值。有效值为 0 到 1。例如,0.25 设置透明度值为 25%。默认值是 1。

blurX: ― 水平模糊量,以像素为单位。有效值为 0 到 255(浮点)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

blurY: ― 垂直模糊量,以像素为单位。有效值为 0 到 255(浮点)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

strength: ― 压印或跨页的强度。该值越大,压印的颜色越深,而且斜角与背景之间的对比度也越强。有效值为 0 到 255。默认值是 1。

quality: ― 应用滤镜的次数。默认值是 1,即表示低品质。值为 2 表示中等品质,值为 3 表示高品质。

type:― 斜角的类型。有效值为 \、\和 \。默认值为 \。

knockout: ― 应用挖空效果 (true),这将有效地使对象的填色变为透明,并显示文档的背景颜色。默认值是 false(不应用挖空效果)。

效果: 代码: import flash.filters.* var filter: BevelFilter = new BevelFilter (); filter.distance = 8; filter.highlightColor = 0xcccccc; my_mc.filters = [filter]; 你可以调整其它参数,创建不同的效果。 6. 渐变斜角滤镜:GradientBevelFilter 构造函数:

var filter:GradientBevelFilter = new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurY, quality, type, knockout);

参数:

distance: ― 偏移距离。有效值为 0 到 8。默认值为 4。

angle: ― 角度,以度为单位。有效值为 0 到 360。默认值是 45。

colors: ― 渐变中使用的 RGB 十六进制颜色值的数组。例如,红色为 0xFF0000,蓝色为 0x0000FF,依此类推。

alphas: ― colors 数组中对应颜色的 Alpha 透明度值的数组。数组中每个元素的有效值为 0 到 1。例如,.25 设置透明度值为 25%。

ratios: ― 颜色分布比例的数组;有效值为 0 到 255。

blurX: ― 水平模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

blurY: ― 垂直模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。

strength: ― 压印或跨页的强度。该值越高,压印的颜色越深,而且斜角与背景之间的对比度也越强。有效值为 0 到 255。值为 0 表明没有应用滤镜。默认值是 1。

quality: ― 滤镜的质量。有效值为 0 到 15。默认值是 1。几乎在所有情况下,有用值都是

1(低品质)、2(中等品质)和 3(高品质)。滤镜的值越小,呈现速度越快。

type: ― 斜角效果的放置。可能的值包括: \ :对象外缘上的斜角 \ :对象内缘上的斜角 \ :对象顶部的斜角 默认值为 \。

knockout: ― 指定是否应用挖空效果。值为 true 将使对象的填充变为透明,并显示文档的背

效果: 代码:

var filter:GradientBevelFilter = new GradientBevelFilter(); filter.colors = [0x005500,0x005588 ,0xffffff, 0x00aa00]; filter.alphas= [1,1, 0, 1]; filter.ratios= [0,64, 128, 255]; filter.blurX =20; filter.blurY= 20; filter.distance=32; my_mc.filters =[filter]; 7. 矩阵颜色滤镜:ColorMatrixFilter 使用这个滤镜可以将一个4x5的矩阵应到MC(或位图)上,从面改变MC的色相,透明度及亮度等。我想这个滤镜的难点应该是对这个矩阵的理解上。RGB 颜色由红绿蓝三种色组成,矩阵将各像素颜色拆分成红绿蓝三种色另加一个透明度。共四个通道。每个通道由5组值组成这就形成了一个4x5的矩阵。看看下图,来理解一下:

红 绿 蓝 透明度 结果 红色 1 0 0 0 0 绿色 0 1 0 0 0 蓝色 0 0 1 0 0

透明度 0 0 0 N 0(N为0.1-1)

从上面的矩阵中可看出,每个通道在其相应的位置设置了值,最小是0,最大为1,改变这些值就可改变图象的色相及透明度。结果的数值改变可改变图象的亮度。比如将矩阵中红色通道的值由1改为0.5,那么图象中的红色元素将会降低。

在实际应用中,将这个矩阵赋值给一个数组,再将这个数组作为ColorMatrixFilter类构造函数的参数,最后将MC的filters属性设为ColorMatrixFilter类的实例。这同使用其它滤镜一样。

先来做一个增加图片亮度的练习: 效果:

将代码改为: import flash.filters.*; var matrix:Array = new Array(); matrix = matrix.concat([1, 0, 0, 0, 100]); // red matrix = matrix.concat([0, 1, 0, 0, 100]); // green matrix = matrix.concat([0, 0, 1, 0, 100]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); my_mc.filters = [filter]; 测试影片,可以片到图片亮度被增大了很多。这是将矩阵中红绿蓝通道的结果值都改为了100得到的结果。

下面一个练习是动态改变红绿蓝三种色的值,从而改变色相。通过鼠标在屏幕上的位置来确定各颜色的值,当鼠标移动时动态改变。

效果: 代码: import flash.filters.*; onMouseMove = function() { var xPercent:Number = 1 - (_xmouse/Stage.width); var yPercent:Number = 1 - (_ymouse/Stage.height); var matrix:Array = new Array(); matrix = matrix.concat([yPercent, 0, 0, 0, 0]); // red matrix = matrix.concat([0, xPercent, 0, 0, 0]); // green matrix = matrix.concat([0, 0, xPercent, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); my_mc.filters = [filter]; } 8. 卷积滤镜:ConvolutionFilter 卷积滤镜同样用一个矩阵于图象可形成如模糊、边缘检测、锐化、浮雕和斜角等多种效果。卷积滤镜重新计算每个像素,并根据矩阵将像素及其周围的象素要加得也该像素的新颜色。最常用的矩阵是3x3的矩阵,如下图:

N N N N P N N N N

在这个矩阵中P代表本身的像素,而N代表周围的像素。那么下面这个矩阵: 0 0 0 0 1 0 0 0 0

可以看出将这个矩阵用于图象时,图象没有变化,因为除自已外周围的像素均为0,即周围像素对中间的P像素没有影响。

将矩阵存入一个数组,并将它作为ConvolutionFilter类构造函数的一个参数,可实现卷积滤镜效果,除了矩阵参数处ConvolutionFilter构造函数还有其它的一些参数:

matrixX ― 矩阵的 x 维度(矩阵中列的数目)。默认值是 0。 matrixY: ― 矩阵的 y 维度(矩阵中行的数目)。默认值是 0。

matrix: ― 用于矩阵转换的值的数组;返回一个副本。数组中的项数必须等于 matrixX*matrixY。

divisor: ― 矩阵转换中使用的除数。默认值是 1。这个参数如果与矩阵值的总和相等,那么图象的亮度无变化。比如这个矩阵:

0 1 0 1 1 1 0 1 0

里面有5个1,那么矩阵总值为5,如果divisor参设为5,则图象的亮度无变化。如果本参数为1,那么图象的亮度是原图象的5/1倍,这时图象就很亮了。如果本参数为10,那么原图片的亮度为5/10,显然图片就变暗了。

bias: ― 要添加到矩阵转换结果的偏差。默认值是 0。

preserveAlpha: ― 值为 false 表明卷积应用于所有通道,包括 Alpha 通道。值为 true 表示只对颜色通道应用卷积。默认值为 true。

clamp: ― 对于源图像之外的像素,如果值为 true,则表明通过复制输入图像给定边缘处的颜色值,沿着输入图像的每个边框按需要扩展输入图像。如果值为 false,则表明应按照 color 和 alpha 属性中的指定使用其它颜色。默认值是 true。

color: ― 要替换源图像之外的像素的十六进制颜色。 alpha: ― 替换颜色的 Alpha。 下面是几个基本效果的矩阵: 基本模糊(除数 5): 0 1 0 1 1 1 0 1 0

锐化(除数 1): 0, -1, 0

-1, 5, -1 0, -1, 0

边缘检测(除数 1): 0, -1, 0 -1, 4, -1 0, -1, 0

浮雕效果(除数 1): -2, -1, 0 -1, 1, 1 0, 1, 2

练习:将上面几个矩阵效果应用于图片,点击图片一次,变换一种效果。 效果: 代码:

import flash.filters.*; var i =0;

my_mc.onRelease = function(){ i++;

if(i>4){ i=1; }

switch(i){ case 1:

var matrixArr:Array =[0,1,0,1,1,1,0,1,0];

var convolution:ConvolutionFilter = new ConvolutionFilter(3, 3, matrixArr,5); my_mc.filters = [convolution]; break; case 2:

var matrixArr:Array = [0, -1, 0,-1, 5, -1, 0, -1, 0];

var convolution:ConvolutionFilter = new ConvolutionFilter(3, 3, matrixArr,1); my_mc.filters = [convolution]; break; case 3:

var matrixArr:Array = [0, -1, 0,-1, 4, -1, 0, -1, 0];

var convolution:ConvolutionFilter = new ConvolutionFilter(3, 3, matrixArr,1); my_mc.filters = [convolution]; break; case 4:

var matrixArr:Array = [-2, -1, 0,-1, 1, 1,0, 1, 2];

var convolution:ConvolutionFilter = new ConvolutionFilter(3, 3, matrixArr,1); my_mc.filters = [convolution]; break; } }

图片置换滤镜:

mapBitmap: ― 包含置换映射数据的 BitmapData 对象。

mapPoint: ― 一个 flash.geom.Point 值,它包含目标影片剪辑的左上角与映射图像左上角之间的偏移量。

componentX: ― 说明在映射图像中使用哪个颜色通道来置换 x 结果。 可能的值如下所示: ? 1(红色) ? 2(绿色) ? 4 (蓝色) ? 8 (alpha)

componentY: ― 说明在映射图像中使用哪个颜色通道来置换 y 结果。可能的值如下所示: ? 1 (红色)

Flash ActionScript2.0教程

i=-1;}if(filter.alpha8){j=-0.1;}filter.blurX+=i;filter.blurY+=i;filter.color=random(16000000);filter.alpha+=j;my_mc.filters=[filter
推荐度:
点击下载文档文档为doc格式
62uuu423a46cyp27mpdk
领取福利

微信扫码领取福利

微信扫码分享