Navigation + Mask + Class
////////// MASK CLASS///////
package {
import flash.display.*;
import gs.TweenLite;
import gs.easing.*;
import flash.filters.*
public class ImageMask extends MovieClip{
public var rad:Number;
private var _mskX:Number;
private var _mskY:Number;
private var _maskingShape:MovieClip;
private var _blur:BlurFilter = new BlurFilter;
public function ImageMask(mc:MovieClip, mskX:Number, mskY:Number, radius:Number) {
_maskingShape = new MovieClip()
addChild(_maskingShape);
rad = radius
_maskingShape.x = mskX
_maskingShape.y = mskY
drawInMask();
mc.cacheAsBitmap=true;
_maskingShape.cacheAsBitmap=true;
//////////////////////////////////////////////////
mc.mask = _maskingShape;
//////////////////////////////////////////////////
}
private function drawInMask():void {
var colors:Array=[0xFF00FF,0x00FFFF];
var alphas:Array=[1,0];
var ratios:Array=[150,255];
_maskingShape.graphics.lineStyle();
_maskingShape.graphics.beginFill(0xFF00FF, 1)
_maskingShape.graphics.drawCircle(0, 0, rad);
}
public function tweenMask (xBlur:Number, yBlur:Number, speed:Number):void {
TweenLite.from (_maskingShape, speed, {scaleX:0, scaleY:0, ease:Quad.easeOut})
_blur.blurX = xBlur;
_blur.blurY = yBlur;
_maskingShape.filters = [_blur]
}
}
}
///// IMAGES CLASS//////
package {
import flash.display.*;
import gs.TweenLite;
import gs.easing.*;
public class Images extends MovieClip {
public var vertSize:Number;
public var horSize:Number;
public function Images(posX:Number, posY:Number, frameNumber:Number) {
x=posX;
y=posY;
gotoAndStop(frameNumber);
vertSize=370;
horSize=370;
}
}
}
//MAIN FLA///////////
import gs.TweenLite;
import gs.easing.*;
var container:Sprite = new Sprite();
container.x=25;
container.y=15;
addChild(container);
var imageMask: ImageMask;
var imageWidth:Number;
var maskPosX:Number;
var maskPosY:Number;
var images:MovieClip;
var scaleUp:Number=2.5;
var scaleDown:Number=1;
buildNav(5, 5);
function buildNav(navNumber:uint, gap:Number):void {
for (var i:uint = 0; i<navNumber; i++) { var nav:MovieClip = new Nav(); nav.y = i * (nav.height + gap); container.addChild(nav); nav.buttonMode=true; nav.txt.mouseEnabled=false; nav.txt.text = "navigation " + (i+1); nav.addEventListener(MouseEvent.ROLL_OVER, onOver); nav.addEventListener(MouseEvent.ROLL_OUT, onOut); nav.addEventListener(MouseEvent.CLICK, onClick); TweenLite.from(nav, .5, {x: - 150, ease:Back.easeOut, delay: i/10}); addEventListener(Event.ENTER_FRAME, posNav); nav.indexOrder = i+1 } } function posNav(evt:Event):void { for (var i:uint = 1; i><container.numChildren; i++) { var currentNav:MovieClip=MovieClip(container.getChildAt(i)); var prevNav:MovieClip=MovieClip(container.getChildAt(i-1)); currentNav.y=prevNav.y+prevNav.height+5; } } function onClick(evt:MouseEvent):void { reset(0x003366, images); var nav:MovieClip = MovieClip(evt.currentTarget) images = new Images(350, 30, nav.indexOrder); imageMask = new ImageMask (images, images.x + images.horSize/2, images.y + images.vertSize/2, 170); imageMask.tweenMask (30, 30, 0.5) nav.txt.textColor=0xCC3300; addChild(images) addChild(imageMask) addChild(container) } function onOver(evt:MouseEvent):void { TweenLite.to(evt.currentTarget, 0.5, {scaleX: scaleUp, scaleY:scaleUp, x:0, ease: Quad.easeOut}); } function onOut(evt:MouseEvent):void { TweenLite.to(evt.currentTarget, 0.5, {scaleX: scaleDown, scaleY:scaleDown, x:0, ease: Quad.easeOut}); } function reset(col:Number, mc:MovieClip):void { if (mc) { removeChild(mc) } for (var i:uint = 0; i><container.numChildren; i++) { var nav:MovieClip=MovieClip(container.getChildAt(i)); nav.txt.textColor=col; } } >
