I have created a custom 3d wall gallery and I would like to mask it to give it right and left fades. I have posted the code that places the images on the stage but for the life of me I cannot mask it. Themc in the library mask_mc already has the correct gradient so now how do I add it to the top of the dynamic gallery?
Any thoughts?
Thanks Again!
private function viewCarousel():void {
viewport = new Viewport3D(stage.stageWidth, stage.stageHeight, false, true);
addChild(viewport);
trace("mask_mc");
scene = new Scene3D();
holder = new DisplayObject3D();
camera = new Camera3D();
camera.z = holder.z - 200;
holder.z = 100;
holder.y = -50;
trace();
scene.addChild(holder);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, _onKeyDown);
holder.z = 200;
Tweener.addTween(holder, { time:1 , z: 55, transition:"easeInOutQuad" } );
viewport.alpha = 0;
Tweener.addTween(viewport, { time:1.6 , delay:.5, alpha:1, transition:"easeInOutQuad" } );
scr = scroller;
scr.addEventListener(MouseEvent.MOUSE_DOWN, onScrollMouseDown);
scr.buttonMode = true;
renderer = new BasicRenderEngine();
wallBlockCount = Math.round(imgNumber / WALL_BLOCK_IMAGE_COUNT);
for (var currentWallBlock:int = 0; currentWallBlock < wallBlockCount; currentWallBlock++) {
for (var i:int = 0; i < WALL_BLOCK_IMAGE_COUNT; i++) {
if (i + ((currentWallBlock) * WALL_BLOCK_IMAGE_COUNT) < movieMaterialArray.length) {
var thumb:MovieClip = new MovieClip();
thumb.addChild(movieMaterialArray[i + ((currentWallBlock) * WALL_BLOCK_IMAGE_COUNT)].movie);
var movieMaterial:MovieMaterial = new MovieMaterial(thumb, false, true);
movieMaterial.interactive = true;
movieMaterial.smooth = true;
movieMaterial.tiled = true;
primitive = new Plane(movieMaterial, 100, 70, 2, 2);
primitive.y = currentWallBlock * (80);
primitive.rotationY = 360 / (WALL_BLOCK_IMAGE_COUNT) * i;
primitive.moveForward(200);
if (currentWallBlock == 0) {
var reflected:MovieClip = new MovieClip();
var refMask:MovieClip = new masker() as MovieClip;
reflected.addChild(refMask);
refMask.y = -70;
refMask.cacheAsBitmap = true;
var bmpd:BitmapData = new BitmapData(thumb.width, thumb.height, true);
bmpd.draw(thumb);
var bmp:Bitmap = new Bitmap(bmpd);
bmp.width = 100;
bmp.height = 70;
var bitmapHolder:MovieClip = new MovieClip();
bitmapHolder.addChild(bmp);
bitmapHolder.scaleY = -1;
bitmapHolder.cacheAsBitmap = true;
bitmapHolder.mask = refMask;
reflected.addChild(bitmapHolder);
reflected.alpha = .5;
reflected.mouseEnabled = false;
var refMat:MovieMaterial = new MovieMaterial(reflected, true, false);
var reflectionPlane:Plane = new Plane(refMat, 100, 70, 5, 5);
reflectionPlane.y = primitive.y - 70;
reflectionPlane.rotationY = primitive.rotationY ;
reflectionPlane.moveForward(200);
holder.addChild(reflectionPlane);
}
var obj:Object = new Object ();
obj.num = i;
obj.block = currentWallBlock;
obj.original = movieMaterialArray[i + ((currentWallBlock) * WALL_BLOCK_IMAGE_COUNT)].original;
obj.material = movieMaterialArray[i + ((currentWallBlock) * WALL_BLOCK_IMAGE_COUNT)].movie;
dict[primitive] = obj;
primitive.name = "image" + currentWallBlock + i;
holder.addChild(primitive);
primitive.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onImageClick);
primitive.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onImageOver);
primitive.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onImageOut);
}
}
}
}