LinearGradientHelper test
...
@author Mario Gonzalez
♥0 |
Line 30 |
Modified 2009-07-16 00:04:33 |
MIT License
archived:2017-03-20 16:25:05
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)
}
}
}