GlowFilter滤镜可以实现发光效果,和圆形结合创建动态遮罩,从而实现图片轮换效果是很不错的!
效果图
ActionScript代码
这个非常简单,这里只贴一下做遮罩的代码:
AS Codestop (); import flash.filters.GlowFilter; // 画圆 function drawCircle (mc:MovieClip, x:Number, y:Number, r:Number):Void { mc.moveTo (x + r, y); mc.beginFill (0); mc.curveTo (r + x, Math.tan (Math.PI / 8) * r + y, Math.sin (Math.PI / 4) * r + x, Math.sin (Math.PI / 4) * r + y); mc.curveTo (Math.tan (Math.PI / 8) * r + x, r + y, x, r + y); mc.curveTo (-Math.tan (Math.PI / 8) * r + x, r + y, -Math.sin (Math.PI / 4) * r + x, Math.sin (Math.PI / 4) * r + y); mc.curveTo (-r + x, Math.tan (Math.PI / 8) * r + y, -r + x, y); mc.curveTo (-r + x, -Math.tan (Math.PI / 8) * r + y, -Math.sin (Math.PI / 4) * r + x, -Math.sin (Math.PI / 4) * r + y); mc.curveTo (-Math.tan (Math.PI / 8) * r + x, -r + y, x, -r + y); mc.curveTo (Math.tan (Math.PI / 8) * r + x, -r + y, Math.sin (Math.PI / 4) * r + x, -Math.sin (Math.PI / 4) * r + y); mc.curveTo (r + x, -Math.tan (Math.PI / 8) * r + y, r + x, y); mc.endFill (); } var circle_mc:MovieClip = this.createEmptyMovieClip ("circle", 0); circle_mc._x = _root.borderwidth / 2; circle_mc._y = _root.borderheight / 2; circle_mc.lineStyle (0, 0); drawCircle (circle_mc, 0, 0, 5); var ctrl_mc:MovieClip = _root.nextPic; var maxNum:Number = _root.borderwidth / 2; var r:Number = 5; var color:Number = 0xCCFF33 //0x33CCFF; var alpha:Number = .8; var blurX:Number = 35; var blurY:Number = 35; var strength:Number = 2; var quality:Number = 3; var inner:Boolean = false; var knockout:Boolean = false; var filter:GlowFilter = new GlowFilter (color, alpha, blurX, blurY, strength, quality, inner, knockout); var filterArray:Array = new Array (); filterArray.push (filter); ctrl_mc.filters = filterArray; this.onEnterFrame = function () { if (circle_mc._width < _root.borderwidth) { circle_mc._xscale *= 1.1; circle_mc._yscale *= 1.1; ctrl_mc.filters = filterArray; } else { delete this.onEnterFrame; ctrl_mc.filters = null _root.next_pic (); this.gotoAndStop (1); } };
源文件下载
- FLA文件:glowfilter.fla
- SWF文件:glowfilter.swf