Hi Natalia,

I recently wrote a reflection class that takes masking into account, it
takes masks into account, hope it helps:
http://objectpainters.com/blog/2008/11/23/visual-reflections-in-as2/

Gots lots of samples in the zip including video.

greetz
JC

On Tue, Apr 28, 2009 at 10:26 AM, natalia Vikhtinskaya <
[email protected]> wrote:

> 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
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to