Codice PHP:
import mx.transitions.easing.*;
import gs.TweenLite;
class MascheraSlide {
private var __target:MovieClip;
private var __verso:String;
private var __width:Number;
private var __height:Number;
private var __time:Number;
private var __easeType:Function;
private var __intv:Number;
private var __inOut:String;
private var __delay:Number;
private var path:MovieClip;
private var trgRef:MovieClip;
public var onMotionFinished:Function;
function MascheraSlide(target:MovieClip, verso:String, inOut:String, easeType:Function, duration:Number, delay:Number) {
var path = this;
if (inOut==undefined){__inOut="in"}else{__inOut=inOut}
if (target != undefined) {
path['endOff'](__target);
__target = target;
if (verso==undefined){
__verso = "left"
}else{
__verso = verso;
}
__easeType = easeType;
if (duration==undefined){
__time = 1;
}else{
__time = duration;
}
if (delay==undefined){
__delay=0;
}else{
__delay=delay;
}
trgRef=target;
drawMask(__target, __verso, __inOut, __easeType, __time, __delay, path)
}else{
path['endOff'](__target, __inOut);
}
}
private function drawSquare(target:MovieClip, name:String, level:Number, wdt:Number, hgt:Number):MovieClip {
var rt:MovieClip=target.createEmptyMovieClip(name, level);
rt.lineStyle(0, 0, 0);
rt.moveTo(0, 0);
rt.beginFill(0);
rt.lineTo(wdt, 0);
rt.lineTo(wdt, hgt);
rt.lineTo(0, hgt);
rt.lineTo(0, 0);
rt.endFill();
return rt;
}
// private function drawMask(target:MovieClip, verso:String,inOut:String, easeType:Function, duration:Number, delay:Number, path:MovieClip) {
private function drawMask(target:MovieClip, verso:String,inOut:String, easeType:Function, duration:Number, delay:Number) {
/*if (target._parent["cmask_"+target._name]==undefined){
drawSquare(target._parent, "cmask_"+target._name, target._parent.getNextHighestDepth(), target._width, target._height);
target.setMask(target._parent["cmask_"+target._name]);
}else{
TweenLite.removeTween(target._parent["cmask_"+target._name].miaTween);
}*/
drawSquare(target._parent, "cmask_"+target._name, target._parent.getNextHighestDepth(), target._width, target._height);
target.setMask(target._parent["cmask_"+target._name]);
target._parent["cmask_"+target._name]._x = target._x;
target._parent["cmask_"+target._name]._y = target._y;
var path:Object=this;
target["objTween"] = new Object();
target["objTween"].onComplete = chiudi;
target["objTween"].ease = easeType;
target["objTween"].onCompleteParams = [target, path, inOut];
target["objTween"].delay = delay;
switch (verso){
case "left":
target["objTween"]._xscale=0;
break;
case "top":
target["objTween"]._yscale=0;
break;
case "right":
target["objTween"]._xscale=0;
target["objTween"]._x = target._width+target._x;
break;
case "bottom":
target["objTween"]._yscale=0;
path["objTween"]._y = target._height+target._y;
target;
default:
target["objTween"]._xscale=0;
}
if (inOut=="in"){
//target._visible=true;
path['animateMask'](target, duration, "from")
//target._parent["cmask_"+target._name].miaTween = TweenLite.from(target._parent["cmask_"+target._name], duration, path.objTween);
}else{
path['animateMask'](target, duration, "to")
//target._parent["cmask_"+target._name].miaTween = TweenLite.to(target._parent["cmask_"+target._name], duration, path.objTween);
}
}
private function animateMask(trg, dur, tipo){
if (tipo=="from"){
trg._visible=true;
trg._parent["cmask_"+trg._name].miaTween = TweenLite.from(trg._parent["cmask_"+trg._name], dur, trg.objTween);
}else{
trg._parent["cmask_"+trg._name].miaTween = TweenLite.to(trg._parent["cmask_"+trg._name], dur, trg.objTween);
}
//var path = this;
}
private function chiudi(target, path, inOut){
path['endOff'](target, inOut);
}
private function endOff(target:MovieClip, inOut:String) {
target.setMask(null);
if (inOut!="in"){
target._visible=false;
}
if (target._parent["cmask_"+target._name]!=undefined){
target._parent["cmask_"+target._name].removeMovieClip();
}
this['onMotionFinished']();
}
public function getMask():MovieClip{
//return target._parent["cmask_"+target._name]
return trgRef._parent["cmask_"+trgRef._name]
}
}