主要使用了遮罩和beginGradientFill来实现,对机器要求比较高,机器不是很好的朋友慎狂点...
点击查看Flash: http://tinsgao.googlepages.com/wave.swf
主要代码如下:
var WaveArray:Array = new Array(); var rel_btn:MovieClip = this.loader.btn; this.createEmptyMovieClip("gradient_mc", 3); gradient_mc.cacheAsBitmap = true; mc.cacheAsBitmap = true; onMouseDown = function () { new Wave(WaveArray); }; onEnterFrame = draw; function draw() { with (gradient_mc) { clear(); spreadMethod = "pad"; interpolati; fillType = "radial"; colors = [0x00FFFF, 0xFFFFFF, 0x00FFFF]; var wal:Number = WaveArray.length; for (var i:Number = 0; i<wal; i++) { alphas = [0, WaveArray.A, 0]; var t:Number = WaveArray.R-10; ratios = [t>0 ? t : 0, WaveArray.R, WaveArray.R+10]; focalPointRatio = 0; matrix = {matrixType:"box", x:WaveArray.X-550, y:WaveArray.Y-400, w:550*2, h:400*2, r:180*Math.PI}; beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio); moveTo(0, 0); lineTo(0, 400); lineTo(550, 400); lineTo(550, 0); lineTo(0, 0); endFill(); } } mc.setMask(gradient_mc); } wave.as 中的代码如下:
///////////////////////////////////////////http://www.25swf.com //////code by 25swf //////tinsgao@126.com //////2006.11.23 //////////////////////////////////////////////////////////////////// import flash.geom.Point; class Wave { ///////////////////////////field///////////////////////// private var m_alpha:Number = 100; private var m_ratio:Number = 0; private var m_point:Point; private var rel_array:Array; private var m_iner:Number; ////////////////////////////attribute//////////////////// function get A() { return m_alpha; } function get R() { return m_ratio; [1] [2] 下一页 数据载入中... |