Hi to all

I use reflection effect for video. But I want to draw not horizontal
line between video and reflection Mc. So I mask my video with shape:

var distance:Number=20;
function drawShapeMask(mc:MovieClip, startX:Number, startY:Number,
w:Number, h:Number) {
       mc.beginFill(0xFF0000);
       mc.moveTo(startX, startY);
       mc.lineTo(startX + w, startY);
       mc.lineTo(startX + w, startY + h);
       mc.lineTo(startX, startY + h-distance);
       mc.lineTo(startX, startY);
       mc.endFill();
}
Now bottom line of video has an angle.

Reflection code works correctly without masked video. With masked
video it shows only half of video without gradient mask.
This is how that looks http://www.natavi.co.uk/test/reflect.jpg
.
What  is wrong? Maybe I can create the same angle position between
video and reflection without using mask?


var reflectionDropoff:Number=1.1;
var reflectionAlpha:Number=50;


reflectIt=function(){
       var bounds = new Object();
       bounds.width = myVideo_mc._width;
       bounds.height = myVideo_mc._height;
       matrixHeight = bounds.height/reflectionDropoff;
       var myBitmapData = new flash.display.BitmapData(bounds.width,
bounds.height, true, 0xFFFFFF);
       myBitmapData.draw(myVideo_mc);
       var reflect=this.createEmptyMovieClip("reflect", 10);
       reflect.attachBitmap(myBitmapData, 1);
       reflect._yscale = -100;
       reflect._x =myVideo_mc._x;
       reflect._y =myVideo_mc._y+(bounds.height*2)-distance;
       reflect._alpha = reflectionAlpha;
       var gra=this.createEmptyMovieClip("gra", 15);
       var fillType = "linear";
       var colors = [0xFFFFFF, 0xFFFFFF];
       var alphas = [80, 0];
       var ratios = [0, 255];
       var matrix = {matrixType:"box", x:0, y:0, w:bounds.width,
h:matrixHeight, r:(90/180)*Math.PI};
       var spreadMethod:String = "pad";
       gra.beginGradientFill(fillType, colors, alphas, ratios, matrix,
spreadMethod);
       gra.moveTo(0, 0);
       gra.lineTo(bounds.width, distance);
       gra.lineTo(bounds.width, bounds.height);
       gra.lineTo(0, bounds.height);
       gra.lineTo(0, 0);
       gra.endFill();
       gra._y = reflect._y - reflect._height;
       gra._x = reflect._x;
       reflect.cacheAsBitmap = true;
       gra.cacheAsBitmap = true;
       reflect.setMask(gra);
       this.onEnterFrame = function ()
       {
       myBitmapData.draw(myVideo_mc);
       };

       }

Thanks for any help!
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to