Gradient over BitmapData object with Alpha - code snippet
January 14th, 2008public function addGradient(input:BitmapData, color:String=”0xFFFFFF”, ratio:Number=0.5):BitmapData {
var output:BitmapData = new BitmapData(input.width, input.height, true);
var tempMatrix:Matrix = new Matrix();
tempMatrix.createGradientBox(input.width, input.height, -1.57);
var mult:uint = 255; // 50%
ratio = ratio * 255;
var outputMC:Sprite = new Sprite();
var imgMC:Sprite = new Sprite();
imgMC.graphics.beginBitmapFill(input);
imgMC.graphics.drawRect(0,0,input.width,input.height);
imgMC.graphics.endFill();
imgMC.cacheAsBitmap = true;
var gradMC:Sprite = new Sprite();
gradMC.graphics.beginGradientFill(”linear”, new Array(color, color), new Array(0,1), new Array(0,ratio), tempMatrix);
gradMC.graphics.drawRect(0,0,input.width,input.height);
gradMC.graphics.endFill();
gradMC.cacheAsBitmap = true;
outputMC.addChild(imgMC);
outputMC.addChild(gradMC);
output.draw(outputMC);
return output;
}
With this function your’re getting as output BitmapData with applied gradient with supplied from 0 to 1 ratio in 90 decrease. This is useful if you’re creating image reflection with simulated 3d effect
.
I’ve used this in real 3D engine also.