1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| package components
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.GradientType;
import flash.display.InterpolationMethod;
import flash.display.Shape;
import flash.display.SpreadMethod;
import flash.geom.Matrix;
import mx.controls.Image;
public class ImgReflection2
{
private var imgBMP:BitmapData;
private var reflecBMP:Bitmap;
private var imgRLayerRef:DisplayObject;
private var gradAlpha:Number;
private var gradRatio:Number;
private var gradWidth:int;
private var gradHeight:int;
public function ImgReflection2()
{
}
public static function invertImg(img:Image):Image {
var imgR:Image = new Image();
var m:Shape;
imgR.source = img.source;
imgR.width = img.width;
imgR.height = img.height;
imgR.x = img.x;
imgR.y = img.y;
imgR.scaleY = -1;
m = createGradient(100,255,imgR);
m.y = imgR.y + imgR.height;
m.x = imgR.x
m.cacheAsBitmap = true;
imgR.cacheAsBitmap = true;
imgR.mask = m;
return imgR;
}
private static function createGradient(gradAlpha:Number, gradRatio:Number, img:Image):Shape {
var type:String = GradientType.LINEAR;
var colors:Array = [0xFFFFFF, 0xFFFFFF];
var alphas:Array = [gradAlpha/100, 0];
var ratios:Array = [0, gradRatio];
var spreadMethod:String = SpreadMethod.PAD;
var interp:String = InterpolationMethod.LINEAR_RGB;
var focalPtRatio:Number = 0;
var matrix:Matrix = new Matrix();
var boxWidth:Number = img.width;
var boxHeight:Number = img.height;
var boxRotation:Number = Math.PI/2; // 90�?
var tx:Number = 0;
var ty:Number = 0;
matrix.createGradientBox(boxWidth, boxHeight, boxRotation, tx, ty);
var square:Shape = new Shape();
square.graphics.beginGradientFill(type,
colors,
alphas,
ratios,
matrix,
spreadMethod,
interp,
focalPtRatio);
square.graphics.drawRect(0, 0, img.width, img.height);
return square;
}
}
} |
Partager