第11次课flash动画.ppt_第1页
第11次课flash动画.ppt_第2页
第11次课flash动画.ppt_第3页
第11次课flash动画.ppt_第4页
第11次课flash动画.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 11次课,影片剪辑,第七节-实现过渡,通过 TransitionManager 类,可以将过渡动画效果应用于影片剪辑。TransitionManager为我们提供了10种过渡效果。,TransitionManager类的使用方法: 1)导入 mx.transitions 类和所有 mx.transitions.easing 类: import mx.transitions.*; import mx.transitions.easing.*; 2)使用TransitionManager类的start()方法将过渡效果应用于影片剪辑上。 格式:TransitionManager.start(影

2、片剪辑名称, type:过渡类型,direction:方向,duration:过渡所所需的时间,easing:缓动效果,各种过渡效果所需的参数);,start()方法参数的说明: 影片剪辑名称要应用过渡效果的MC的实例名称。 过渡类型:共有10种过渡效果,这里填上要用的过渡效果名称。 direction:方向:即过渡是进入还是退出。可以用两个值:Transition.IN和Transition.OUT duration:过渡所所需的时间:一般一个过渡几秒,常用3-5。 easing:缓动效果:在过渡效果中可以为过渡效果添加缓动效果,None.easeNone值,就是不用缓动效果。 各种过渡效果

3、所需的参数:除了上面的的参数外,每一种过渡效果可能还有自已的参数,遮帘过渡:Blinds,参数: numStrips,“遮帘”效果中的遮罩条纹数。建议的范围是 1 到 50。 dimension,一个整数,指示遮帘条纹是垂直的 (0) 还是水平的 (1)。 示例: 1 新建flash文档,导入一张图片到舞台,打开对齐面板,宽高匹配,居中对齐。 2 点中图片:将其转换为MC,实例名称为:img1_mc。,3 点第1帧,右键打开动作面板,输入如下代码: import mx.transitions.*; import mx.transitions.easing.*; TransitionManage

4、r.start(img1_mc,type:Blinds, direction:Transition.IN, duration:2, easing:None.easeNone, numStrips:10, dimension:0);,淡化过渡:Fade,效果: 制作方法跟前面一样,只是把代码改为: import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Fade, direction:Transition.IN, duration:3, easing:None.e

5、aseNone); 注意:这个过渡则没有自已的参数。 用代码实现的过渡效果比自已在计设环境中去设透明度,做遮罩要简单得多。,飞行过渡:Fly,参数:startPoint,一个指示起始位置的整数;范围是 1 到 9: 左上,1;上中,2;右上,3;左中,4;中心,5;右中,6;左下,7;下中,8;右下,9。 代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc,type:Fly, direction:Transition.IN, duration:3, easing:

6、None.easeNone, startPoint:9);,光圈过渡:Iris,参数:startPoint,一个指示起始位置的整数;范围是 1 到 9: 左上,1;上中,2;右上,3;左中,4;中心,5;右中,6;左下,7;下中,8;右下,9。 shape,值为Iris.SQUARE(方形)或Iris.CIRCLE(圆形)的遮罩形状 代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Iris, direction:Transition.IN, dur

7、ation:2, easing: None.easeNone, startPoint:5, shape:Iris.CIRCLE);,照片过渡:Photo,代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start (img1_mc, type:Photo, direction:Transition.IN, duration:1, easing:None.easeNone);,像素溶解过渡:PixelDissolve,参数:xSections,一个整数,指示沿水平轴的遮罩矩形部分的数目。建

8、议的范围是 1 到 50。ySections,一个整数,指示沿垂直轴的遮罩矩形部分的数目。建议的范围是 1 到 50。代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:PixelDissolve, direction:Transition.IN, duration:2, easing:None.easeNone, xSections:10, ySections:10);,旋转过渡:Rotate,参数:ccw 一个布尔值:对于顺时针旋转为 false;

9、对于逆时针旋转为 true。 degrees,一个整数,指示对象要旋转的度数。建议是范围是 1 到 9999。例如,degrees 设置为 1080 时,会将对象完全旋转三次。 代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Rotate, direction:Transition.IN, duration:3, easing:None.easeNone, ccw:false, degrees:720);,挤压过渡:Squeeze,参数:dimen

10、sion,一个整数,指示挤压效果应是水平的 (0) 还是垂直的 (1)。 代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Squeeze, direction:Transition.IN, duration:2, easing:None.easeNone, dimension:1);,划入/划出过渡:Wipe,参数:startPoint,一个整数,指示开始位置。范围是 1 到 4 和 6 到 9: 左上,1;上中,2;右上,3;左中,4;右中,6;

11、左下,7;下中,8;右下,9。 代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:1);,缩放过渡:Zoom,代码:import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, typ

12、e:Zoom, direction:Transition.IN, duration:2, easing:None.easeNone);,关于缓动类和方法: Flash 提供了五个缓动类,每个缓动类都有三个方法,这些方法指示过渡动画的以下哪一部分应用缓动效果:在动画的开始、结尾或开始和结尾。此外,带有 easeNone 方法的 None 缓动类可用于指示未使用缓动。 下表描述了这 6 个缓动计算类。 缓动类 描述 Back 在过渡范围外的一端或两端扩展动画一次,以产生从其范围外回拉的效果。 Bounce 在过渡范围的一端或两端内添加弹跳效果。弹跳数与持续时间相关,持续时间越长,弹跳数越多。 El

13、astic 添加一端或两端超出过渡范围的弹性效果。弹性量不受持续时间影响。,Regular 在一端或两端添加较慢的运动。此功能使您能够添加加速效果、减速效果或这两种效果。 Strong 在一端或两端添加较慢的运动。此效果类似于 Regular 缓动类,但它更明显。 None 添加从开始到结尾无任何减速或加速效果的相同的运动。此过渡也称为线性过渡。 这 6 种缓动计算类的每一种都有三个缓动方法,它们指明缓动效果应用于动画的哪个部分。此外,None 缓动类还有第四个缓动方法。,方法描述: easeIn 在过渡的开始提供缓动效果。 easeOut 在过渡的结尾提供缓动效果。 easeInOut 在过

14、渡的开始和结尾提供缓动效果。 easeNone 指明不使用缓动计算。只在 None 缓动类中提供。,用法:在过渡效果中: TransitionManager.start()方法的easing:参数用这个值:缓动类名.缓动方法,代码为: import mx.transitions.*; import mx.transitions.easing.*; TransitionManager.start(img1_mc, type:Zoom, direction:Transition.IN, duration:2, easing:Bounce.easeOut);,第八节-实现补间动画,flash mx.

15、transitions.Tween类用于实现类似补间动画的效果。 Tween类使用的格式:1)import mx.transitions.Tween; 2)用new Tween()方法即可实现。New Tween()方法格式: new Tween(要应用补间的MC,要应用补间的MC的属性,缓动效果,属性的初始值,属性的结束值,补间的长度,补间长度的类型),属性的初始值:比如要用补间的是_x属性,我们要建立对象从舞台左边移到右边的补间动画,那么_x的初始值就应很小,比如0,10,50等,即对象在舞台左边时的_x值。 属性的结束值:补间结束时属性的值,比如对象移到舞台右边时的_x的值。 补间的长度

16、:可以有两种表示方式:秒或帧,但这里只是一个数值,是用秒还是用帧来计算补间由后面一个参数来决定。 补间长度的类型:决定是用秒还是用帧来计算补间,如果为true则用秒来计算,如果为false则用帧来计算。,示例:让一个小球从舞台的左边移到右边: 1)画一个球,转换为MC,实例名称为:ball_mc. 2)打开帧动作面板,输入如下代码: import mx.transitions.Tween; import mx.transitions.easing.*; /因为在用到缓动效果,所以将缓动类也导入 new Tween(ball_mc, _x, None.easeNone, 20,500,3,tru

17、e);测试影片,小球将从左边(20像数处)移到右边(500像素处),用时3秒。,代码改成下面的: import mx.transitions.Tween; import mx.transitions.easing.*; new Tween(ball_mc, _x,Regular.easeIn, 20,500,40,false); 测试影片,我们看到小球由慢到快从左边移到右边。在这段代码中,改变了三个参数,一个是缓动效果,一个是补间长度用了40,再一个就长度类型用了false,这样这个补间长度不再是3秒,而是40帧。,onMotionFinished事件:Tween类的onMotionFinis

18、hed事件在补间动画完成时调用。continueTo() 方法:继续执行补间动画,它以原补间动画属性的结束值作为开始值。 利用上面的事件和方法可使动画往返运动。 将代码改为下面的: import mx.transitions.Tween; import mx.transitions.easing.*; var mytween:Tween = new Tween(ball_mc, _alpha,Nonse.easeNonse, 0,100,3,true); mytween. onMotionFinished = function() mytween. continueTo(0,3) ,yoyo(

19、)方法: 这个方法在补间结束时,将初始值变为结束值,将结束值变为初始值,再次进行补间,如此往返永不停止。 帧动作代码: import mx.transitions.Tween; import mx.transitions.easing.*; var mytween:Tween = new Tween(ball_mc, _xscale,Nonse.easeNonse, 80,100,0.5,true); mytween.onMotionFinished = function() mytween.yoyo() ,下面我们来制用一个弹性菜单的练习,完成本节上面的动画: 首先来做弹性菜单,做4个MC,

20、比较简单,画一个黄色的矩形,在矩形上面放一个静态文本,内容分别是:“加速滚动的球”,“闪烁的星”,“跳动的红心”,“飞动的蝴蝶”。,有两点要注意: 1.将字打散(两次),因为文本框在放大时会保持长宽比例,而我们弹出菜单时只需要改变高度,所以必须将文本打散。 2因为菜单是向下弹开(增加高度),因此,元件必须上对齐。即上边与十字对齐。 3矩形的高度为20,如果你的高度不是20,那么下面的代码就要作相应改变。 4个元件做好后,将它们拖到舞台上,放好。实例名称为: cd1,cd2,cd3,cd4,然后打开帧动作面板,输入如下代码: import mx.transitions.Tween; import

21、 mx.transitions.easing.*; var cdtween:Tween; function tc(cd) cdtween = new Tween(cd, _height,Bounce.easeOut, 20,60,2,true); cd1.onRollOver = function() tc(this); cd1.onRollOut = function() cdtween.continueTo(20,1); cd2.onRollOver = function() tc(this); cd2.onRollOut = function() cdtween.continueTo(2

22、0,1); cd3.onRollOver = function() tc(this); cd3.onRollOut = function() cdtween.continueTo(20,1); cd4.onRollOver = function() tc(this); cd4.onRollOut = function() cdtween.continueTo(20,1); 测试影片,一个弹性菜单就做好了。,弹出菜单的代码在4个菜单项上都要调用,所以将它做成函数tc.这个函数,用Tween类使菜单 MC,的高度在2秒内由20变成60,达到弹出的效果,缓动则菜用了Bounce.easeOut,在菜

23、单展开后产生一个弹跳的效果。在函数外声明 Tween对象:var cdtween:Tween;是为了在鼠标移出菜单时能够调用它。 接下来的代码是,在鼠标移动菜单上时,调用tc 使菜单弹出。在鼠标移出菜单时,调用Tween类的continueTo()方法,使菜单收回去。,第九节-使用滤镜,Flash的filters类提供了9种滤镜效果,滤镜效果格式: 1)导入filters类: import flash.filters.*; 2)使用new构造函数,创建一个filters对象,并将它赋值给MC(或文本或按钮)的filters属性从而实现滤镜效果。,1 模糊滤镜:BlurFilter,创建Blur

24、Filter实例可用下面的方法: var filter: BlurFilter = new BlurFilter(blurX, blurY, quality); 在BlurFilter的构造函数中使用了三个参数: blurX: 水平模糊量。有效值为 0 到 255(浮点值)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 blurY: 垂直模糊量。有效值为 0 到 255(浮点值)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 quality: 应用滤镜的次数。默认值是 1,即表示

25、低品质。值为 2 表示中等品质,值为 3 表示高品质并且接近高斯模糊。,下面练习模糊滤镜的应用。 导入一张图片将它做成MC,放到舞台上,实例名称为:my_mc. 然后打开帧动作面板,输入下列代码: import flash.filters.*; var filter:BlurFilter = new BlurFilter(8,8,3); my_mc.filters = filter; 测试影片,这时图片已变模糊了。,可以在运行时改变模糊滤镜的参数,使模糊效果是可变的,比如根据鼠标的位置产生不同的模糊效果。将代码改成下面的: import flash.filters.* var filter:B

26、lurFilter = new BlurFilter(8,8,3); my_mc.filters = filter; onMouseMove = function() bx = Math.abs(_xmouse - my_mc._x); by = Math.abs(_ymouse - my_mc._y); filter.blurX = bx/10; filter.blurY = by/10; my_mc.filters = filter; 测试影片,当鼠标移动时,模糊效果发生变化,鼠标距图片中心越远,模糊效果越深。,2 投影滤镜:DropShadowFilter,DropShadowFilte

27、r滤镜将产生投影的效果。要创建投影滤镜可用:var filter: DropShadowFilter = new DropShadowFilter(distance, angleInDegrees,color,alpha,blurX,blurY,strength,quality,inner,knockout,hideObject);,distance: 阴影的偏移距离,以像素为单位。默认值是 4(浮点)。 angle: 阴影的角度,0 到 360(浮点)。默认值是 45。 color: 阴影颜色,采用十六进制格式 0 xRRGGBB。默认值是 0 x000000。 alpha: 阴影颜色的 A

28、lpha 透明度值。有效值为 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: 应用滤镜的次数。

29、有效值为 0 到 15。默认值是 1,它表示低品质。值为 2 表示中等品质,值为 3 表示高品质。 inner: 表示阴影是否为内侧阴影。值 true 指定内侧阴影。默认为 false,即外侧阴影,它表示对象外缘周围的阴影。 knockout: 应用挖空效果 (true),这将有效地使对象的填色变为透明,并显示文档的背景颜色。默认值是 false,即不应用挖空效果。 hideObject: 表示是否隐藏对象。如果值为 true,则表示没有绘制对象本身,只有阴影是可见的。默认值是 false(显示对象)。,做个练习,将上面练习的代码改为: import flash.filters.* ;var

30、filter:DropShadowFilter = new DropShadowFilter(); my_mc.filters = filter; 测试影片,效果如下:图片产生了投影效果。因为投影滤镜的所有参数都是可选的,所以没有给任何参数,即都使用默认值。,同样的可以在运时改变投影的参数,从而改变效果。将这个效果改变加在图片的点击事件上,即点击图片投影效果发生改变。这里改变了三个参数,偏移量,颜色(随机)和角度。,代码如下: import flash.filters.* ;var filter:DropShadowFilter = new DropShadowFilter(); my_mc.

31、filters = filter; var i = 1; my_mc.onRelease = function():Void if(filter.distance30) i=-1; filter.distance += i; filter.color = random(16000000); filter.angle+; my_mc.filters = filter; ,3发光滤镜:GlowFilter,构造函数: var filter:GlowFilter = new GlowFilter(color,alpha,blurX,blurY,strength,quality,inner,knock

32、out); 参数: color: 光晕颜色,采用十六进制格式 0 x RRGGBB。默认值是 0 xFF0000。 alpha: 颜色的 Alpha 透明度值。有效值为 0 到 1。例如,.25 设置透明度值为 25%。默认值是 1。 blurX: 水平模糊量。有效值为 0 到 255(浮点)。默认值是 6。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,它的呈现速度会比其它值更快。 blurY: 垂直模糊量。有效值为 0 到 255(浮点)。默认值是 6。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,它的呈现速度会比其它值更快。,strength: 压印

33、或跨页的强度。该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。有效值为 0 到 255。默认值是 2。 quality: 应用滤镜的次数。有效值为 0 到 15。默认值是 1,它表示低品质。值为 2 表示中等品质,值为 3 表示高品质。 inner: 指定发光是否为内侧发光。值 true 表示内侧发光。默认值是 false,即外侧发光,它表示对象外缘周围的发光。 knockout: 指定对象是否具有挖空效果。值为 true 将使对象的填充变为透明,并显示文档的背景颜色。默认值是 false(不应用挖空效果)。,代码如下: import flash.filters.* ;var fi

34、lter:GlowFilter = new GlowFilter(); my_mc.filters = filter; var i = 1; var j =0.1; my_mc.onRelease = function():Void if(filter.blurX250) i=-1; 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 渐变发光滤镜:Gradie

35、ntGlowFilter,构造函数: var filter:GradientGlowFilter = new GradientGlowFilter(distance,angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); 参数: distance: 光晕的偏移距离。默认值为 4。 angle: 角度,以度为单位。有效值为 0 到 360。默认值是 45。 colors: 定义渐变的颜色的数组。例如,红色为 0 xFF0000,蓝色为 0 x0000FF,依此类推。 alp

36、has: 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,则表明原始图像是按原样复制的。默认值

37、是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 strength: 压印或跨页的强度。该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。有效值为 0 到 255。值越大,压印越强。值为 0 意味着未应用滤镜。默认值是 1。 quality: 应用滤镜的次数。有效值为 0 到 15。默认值是 1,它表示低品质。值为 2 表示中等品质,值为 3 表示高品质。 type: 滤镜效果的放置。可能的值包括: outer:对象外缘上的发光 inner:对象内缘上的发光;默认值 full:对象顶部的发光,代码: import flash.filte

38、rs.* ;var filter:GradientGlowFilter = new GradientGlowFilter(); filter.colors = 0 xFFFFFF, 0 xFF0000, 0 xFFFF00, 0 x00CCFF; filter.alphas = 0.3, 0.5, 0.5, 0.5; filter.ratios = 0, 63, 126, 255; filter.blurX = 50; filter.blurY = 50; filter.type = outer; my_mc.filters = filter;,5 斜角滤镜:BevelFilter(斜角滤镜可

39、产生三维效果。),构造函数: var filter:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); 参数: distance: 斜角的偏移距离,以像素为单位(浮点)。默认值是 4。 angle: 斜角的角度,0 至 360 度。默认值是 45。 highlightColor: 斜角的加亮颜色 0 xRRGGBB 。默认

40、值是 0 xFFFFFF。 highlightAlpha: 加亮颜色的 Alpha 透明度值。有效值为 0 到 1。例如,.25 设置透明度值为 25%。默认值是 1。 shadowColor: 斜角的阴影颜色 0 xRRGGBB 。默认值是 0 x000000。 shadowAlpha: 阴影颜色的 Alpha 透明度值。有效值为 0 到 1。例如,0.25 设置透明度值为 25%。默认值是 1。 blurX: 水平模糊量,以像素为单位。有效值为 0 到 255(浮点)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。,blurY: 垂直

41、模糊量,以像素为单位。有效值为 0 到 255(浮点)。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 strength: 压印或跨页的强度。该值越大,压印的颜色越深,而且斜角与背景之间的对比度也越强。有效值为 0 到 255。默认值是 1。 quality: 应用滤镜的次数。默认值是 1,即表示低品质。值为 2 表示中等品质,值为 3 表示高品质。 type: 斜角的类型。有效值为 inner、outer 和 full。默认值为 inner。 knockout: 应用挖空效果 (true),这将有效地使对象的填色变为透明,并显示文档的背

42、景颜色。默认值是 false(不应用挖空效果)。,代码: import flash.filters.* ;var filter: BevelFilter = new BevelFilter (); filter.distance = 8; filter.highlightColor = 0 xcccccc; my_mc.filters = filter;,6 渐变斜角滤镜:GradientBevelFilter,构造函数: var filter:GradientBevelFilter = new GradientBevelFilter(distance, angleInDegrees, col

43、ors, alphas, ratios, blurY, quality, type, knockout); 参数: distance: 偏移距离。有效值为 0 到 8。默认值为 4。 angle: 角度,以度为单位。有效值为 0 到 360。默认值是 45。 colors: 渐变中使用的 RGB 十六进制颜色值的数组。例如,红色为 0 xFF0000,蓝色为 0 x0000FF,依此类推。 alphas: colors 数组中对应颜色的 Alpha 透明度值的数组。数组中每个元素的有效值为 0 到 1。例如,.25 设置透明度值为 25%。 ratios: 颜色分布比例的数组;有效值为 0 到

44、 255。 blurX: 水平模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 knockout: 指定是否应用挖空效果。值为 true 将使对象的填充变为透明,并显示文档的背,blurY: 垂直模糊量。有效值为 0 到 255。如果模糊量小于等于 1,则表明原始图像是按原样复制的。默认值是 4。作为 2 的乘方的值(如 2、4、8、16 和 32)经过了优化,呈现速度比其它值更快。 strength: 压印或跨页的强度。该值越高,压印的颜色越深,而且斜

45、角与背景之间的对比度也越强。有效值为 0 到 255。值为 0 表明没有应用滤镜。默认值是 1。 quality: 滤镜的质量。有效值为 0 到 15。默认值是 1。几乎在所有情况下,有用值都是 1(低品质)、2(中等品质)和 3(高品质)。滤镜的值越小,呈现速度越快。 type: 斜角效果的放置。可能的值包括: outer :对象外缘上的斜角 inner :对象内缘上的斜角 full :对象顶部的斜角 默认值为 inner。,代码: import flash.filters.* ; var filter:GradientBevelFilter = new GradientBevelFilte

46、r(); filter.colors = 0 x005500,0 x005588 ,0 xffffff, 0 x00aa00; 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的色相,透明度及亮度等。,将代码改为: import flash.filters

47、.*; 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.filte

48、rs = 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

49、(); 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 卷

50、积滤镜: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类构造函数的一个参数,可实现卷积滤镜效果,除

51、了矩阵参数处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,那么图象的亮度是原图

52、象的5/1倍,这时图象就很亮了。如果本参数为10,那么原图片的亮度为5/10,显然图片就变暗了。,bias: 要添加到矩阵转换结果的偏差。默认值是 0。 preserveAlpha: 值为 false 表明卷积应用于所有通道,包括 Alpha 通道。值为 true 表示只对颜色通道应用卷积。默认值为 true。 clamp: 对于源图像之外的像素,如果值为 true,则表明通过复制输入图像给定边缘处的颜色值,沿着输入图像的每个边框按需要扩展输入图像。如果值为 false,则表明应按照 color 和 alpha 属性中的指定使用其它颜色。默认值是 true。 color: 要替换源图像之外的像

53、素的十六进制颜色。 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(i4)

54、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, matrixAr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论