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

