LinearGradientHelper test

by onedayitwillmake
...
@author Mario Gonzalez
♥0 | Line 30 | Modified 2009-07-16 00:04:33 | MIT License
play

ActionScript3 source code

/**
 * Copyright onedayitwillmake ( http://wonderfl.net/user/onedayitwillmake )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/6KrV
 */

package  
{
	import flash.display.GradientType;
	import flash.display.Sprite;
	import flash.geom.Matrix;
	import flash.geom.Point;
	
	/**
	 * ...
	 * @author Mario Gonzalez
	 */
	public class LinearGradientHelper extends Sprite
	{
		
		public function LinearGradientHelper() 
		{
			var startPoint:Point = new Point(0, 0)
                        var endPoint:Point = new Point(stage.stageWidth, stage.stageHeight);
                        beginLinearGradientFill([0xFF0080, 0x710038, 0x0EBFFA, 0xFF0080], [1, 1, 1, 1], [0, 63*1, 63*2, 63*3 ], startPoint, endPoint);
                        graphics.drawRect(0, 0, 800, 800);
                        graphics.endFill();
		}
		
		
		public function beginLinearGradientFill(colors:Array, alphas:Array, ratios:Array, startPoint:Point, endPoint:Point, spreadMethod:String = "pad", interpolationMethod:String = "rgb"):void
		{
			var dx:Number = endPoint.x-startPoint.x;
			var dy:Number = endPoint.y-startPoint.y;
			var dist:Number = Math.sqrt(dx*dx+dy*dy);
			var rad:Number = Math.atan2(dy,dx);
			var offsetX:Number = -(dist - Math.cos(rad)*dist)*0.5 + startPoint.x;
			var offsetY:Number = -(dist - Math.sin(rad)*dist)*0.5 + startPoint.y;
			var mat:Matrix = new Matrix();
			mat.createGradientBox(dist, dist, rad, offsetX, offsetY);
			graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, mat, spreadMethod, interpolationMethod)
		}
	}
	
}

Forked