Galeri içinde bulunan görsellerinize flash içerisinde dynamic olarak eklediğiniz imagelara yansıma (reflection) uygulayabilirsiniz.
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.filters.BlurFilter;
import flash.geom.Point;
// Use this as the document class, and be sure to define a
// MovieClip in the library exporter a ’Picture’ class.
public class ReflectionTutorial extends Sprite {
private var picture:Sprite;
private var reflection:BitmapData;
private var reflectionHolder:Bitmap;
public function ReflectionTutorial() {
// Form the library
picture = new Picture();
picture.x = 110;
picture.y = 15;
addChild(picture);
createReflection();
}
private function createReflection():void {
reflection = new BitmapData(picture.width, picture.height, true, 0x00ffffff);
var flipMatrix:Matrix = new Matrix();
flipMatrix.rotate(Math.PI);
flipMatrix.scale( -1, 1 );
flipMatrix.translate(0, picture.height);
reflection.draw(picture, flipMatrix);
for (var i:int = 0; i < picture.height; i++) {
var rowFactor:Number = Math.max(0, 0.5 - (i / picture.height));
for (var j:int = 0; j < picture.width; j++) {
var pixelColor:uint = reflection.getPixel32(j, i);
var pixelAlpha:uint = pixelColor >> 24 & 0xff;
var pixelRGB:uint = pixelColor & 0xffffff;
var resultAlpha:uint = pixelAlpha * rowFactor;
reflection.setPixel32(j, i, resultAlpha << 24 | pixelRGB);
}
}
reflection.applyFilter(reflection, reflection.rect, new Point(0, 0), new BlurFilter(4, 4, 3));
reflectionHolder = new Bitmap(reflection);
reflectionHolder.y = picture.y + picture.height;
reflectionHolder.x = picture.x;
//reflectionHolder.filters = [new BlurFilter(4, 4, 3)]; // Alternative blur method
addChild(reflectionHolder);
}
}
}
kaynak dosyası