Hi I have this peace of code to use in actionscript, usually I use it whit robert penner equations, and the objective is to change propertis of movie clips, the code is this:
ASBroadcaster.initialize(MovieClip);
var ref = this.createEmptyMovieClip("$_mc", -16384);
ref.onEnterFrame = function() {
MovieClip.broadcastMessage("onEnterFrame");
};
delete ref;
Math.linearTween = function(t, b, c, d) {
return (((c*t)/d)+b);
};
Math.easeInQuad = function(t, b, c, d) {
return (((c*((t=t/d)))*t)+b);
};
Math.easeOutQuad = function(t, b, c, d) {
return ((((-c)*((t=t/d)))*(t-2))+b);
};
Math.easeInOutQuad = function(t, b, c, d) {
if (((t=t/(d/2)))<1) {
return ((((c/2)*t)*t)+b);
}
return ((((-c)/2)*(((--t)*(t-2))-1))+b);
};
Math.easeInCubic = function(t, b, c, d) {
return ((((c*((t=t/d)))*t)*t)+b);
};
Math.easeOutCubic = function(t, b, c, d) {
return ((c*(((((t=(t/d)-1))*t)*t)+1))+b);
};
Math.easeInOutCubic = function(t, b, c, d) {
if (((t=t/(d/2)))<1) {
return (((((c/2)*t)*t)*t)+b);
}
return (((c/2)*(((((t=t-2))*t)*t)+2))+b);
};
Math.easeInQuart = function(t, b, c, d) {
return (((((c*((t=t/d)))*t)*t)*t)+b);
};
Math.easeOutQuart = function(t, b, c, d) {
return (((-c)*((((((t=(t/d)-1))*t)*t)*t)-1))+b);
};
Math.easeInOutQuart = function(t, b, c, d) {
if (((t=t/(d/2)))<1) {
return ((((((c/2)*t)*t)*t)*t)+b);
}
return ((((-c)/2)*((((((t=t-2))*t)*t)*t)-2))+b);
};
Math.easeInQuint = function(t, b, c, d) {
return ((((((c*((t=t/d)))*t)*t)*t)*t)+b);
};
Math.easeOutQuint = function(t, b, c, d) {
return ((c*(((((((t=(t/d)-1))*t)*t)*t)*t)+1))+b);
};
Math.easeInOutQuint = function(t, b, c, d) {
if (((t=t/(d/2)))<1) {
return (((((((c/2)*t)*t)*t)*t)*t)+b);
}
return (((c/2)*(((((((t=t-2))*t)*t)*t)*t)+2))+b);
};
Math.easeInSine = function(t, b, c, d) {
return ((((-c)*Math.cos((t/d)*(Math.PI/2)))+c)+b);
};
Math.easeOutSine = function(t, b, c, d) {
return ((c*Math.sin((t/d)*(Math.PI/2)))+b);
};
Math.easeInOutSine = function(t, b, c, d) {
return ((((-c)/2)*(Math.cos((Math.PI*t)/d)-1))+b);
};
Math.easeInExpo = function(t, b, c, d) {
return (((t == 0) ? (b) : ((c*Math.pow(2, 10*((t/d)-1)))+b)));
};
Math.easeOutExpo = function(t, b, c, d) {
return (((t == d) ? (b+c) : ((c*((-Math.pow(2, (-10*t)/d))+1))+b)));
};
Math.easeInOutExpo = function(t, b, c, d) {
if (t == 0) {
return (b);
}
if (t == d) {
return (b+c);
}
if (((t=t/(d/2)))<1) {
return (((c/2)*Math.pow(2, 10*(t-1)))+b);
}
return (((c/2)*((-Math.pow(2, -10*(--t)))+2))+b);
};
Math.easeInCirc = function(t, b, c, d) {
return (((-c)*(Math.sqrt(1-(((t=t/d))*t))-1))+b);
};
Math.easeOutCirc = function(t, b, c, d) {
return ((c*Math.sqrt(1-(((t=(t/d)-1))*t)))+b);
};
Math.easeInOutCirc = function(t, b, c, d) {
if (((t=t/(d/2)))<1) {
return ((((-c)/2)*(Math.sqrt(1-(t*t))-1))+b);
}
return (((c/2)*(Math.sqrt(1-(((t=t-2))*t))+1))+b);
};
Math.easeInElastic = function(t, b, c, d, a, p) {
if (t == 0) {
return (b);
}
if (((t=t/d)) == 1) {
return (b+c);
}
if (!p) {
p = d*0.3;
}
if (a<Math.abs(c)) {
a = c;
var s = (p/4);
} else {
var s = ((p/(Math.PI*2))*Math.asin(c/a));
}
return ((-((a*Math.pow(2, 10*((t=t-1))))*Math.sin((((t*d)-s)*(Math.PI*2))/p)))+b);
};
Math.easeOutElastic = function(t, b, c, d, a, p) {
if (t == 0) {
return (b);
}
if (((t=t/d)) == 1) {
return (b+c);
}
if (!p) {
p = d*0.3;
}
if (a<Math.abs(c)) {
a = c;
var s = (p/4);
} else {
var s = ((p/(Math.PI*2))*Math.asin(c/a));
}
return ((((a*Math.pow(2, -10*t))*Math.sin((((t*d)-s)*(Math.PI*2))/p))+c)+b);
};
Math.easeInOutElastic = function(t, b, c, d, a, p) {
if (t == 0) {
return (b);
}
if (((t=t/(d/2))) == 2) {
return (b+c);
}
if (!p) {
p = d*0.45;
}
if (a<Math.abs(c)) {
a = c;
var s = (p/4);
} else {
var s = ((p/(Math.PI*2))*Math.asin(c/a));
}
if (t<1) {
return ((-0.5*((a*Math.pow(2, 10*((t=t-1))))*Math.sin((((t*d)-s)*(Math.PI*2))/p)))+b);
}
return (((((a*Math.pow(2, -10*((t=t-1))))*Math.sin((((t*d)-s)*(Math.PI*2))/p))*0.5)+c)+b);
};
Math.easeInBack = function(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
return ((((c*((t=t/d)))*t)*(((s+1)*t)-s))+b);
};
Math.easeOutBack = function(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
return ((c*(((((t=(t/d)-1))*t)*(((s+1)*t)+s))+1))+b);
};
Math.easeInOutBack = function(t, b, c, d, s) {
if (s == undefined) {
s = 1.70158;
}
if (((t=t/(d/2)))<1) {
return (((c/2)*((t*t)*(((((s=s*1.525))+1)*t)-s)))+b);
}
return (((c/2)*(((((t=t-2))*t)*(((((s=s*1.525))+1)*t)+s))+2))+b);
};
Math.easeInBounce = function(t, b, c, d) {
return ((c-Math.easeOutBounce(d-t, 0, c, d))+b);
};
Math.easeOutBounce = function(t, b, c, d) {
if (((t=t/d))<0.363636363636364) {
return ((c*((7.5625*t)*t))+b);
} else if (t<0.727272727272727) {
return ((c*(((7.5625*((t=t-0.545454545454545)))*t)+0.75))+b);
} else if (t<0.909090909090909) {
return ((c*(((7.5625*((t=t-0.818181818181818)))*t)+0.9375))+b);
} else {
return ((c*(((7.5625*((t=t-0.954545454545455)))*t)+0.984375))+b);
}
};
Math.easeInOutBounce = function(t, b, c, d) {
if (t<(d/2)) {
return ((Math.easeInBounce(t*2, 0, c, d)*0.5)+b);
}
return (((Math.easeOutBounce((t*2)-d, 0, c, d)*0.5)+(c*0.5))+b);
};
_global.Sequencer = function() {
this.i = 0;
this.s = [];
if ((arguments.length%2) != 0) {
trace("niewlasciwa liczba arugmentów");
} else {
var fr;
var ob;
var i = 0;
while (i<arguments.length) {
fr = arguments*;
ob = arguments[i+1];
this.addSeq(fr, ob);
i++;
}
}
};
Sequencer.prototype.reset = function() {
this.i = 0;
this.stop();
for (var j in this.s) {
for (var k in this.s[j]) {
MovieClip.removeListener(this.s[j][k]);
}
}
};
Sequencer.prototype.addSeq = function(frame, obj) {
if (this.s[frame] == undefined) {
this.s[frame] = [];
}
this.s[frame].push(obj);
};
Sequencer.prototype.start = function() {
MovieClip.addListener(this);
};
Sequencer.prototype.onEnterFrame = function() {
this.i++;
if (this.s[this.i] != undefined) {
this.check();
}
};
Sequencer.prototype.check = function() {
var j;
var arr = this.s[this.i];
j = 0;
while (j<arr.length) {
var obj = arr[j];
if (obj._args != undefined) {
obj.args = obj._args;
}
if (obj.args.length == 2) {
var sta = obj.mc[obj.prop];
var dur = (obj.args[0]-sta);
var fra = obj.args[1];
obj._args = obj.args;
obj.args = [0, sta, dur, fra];
}
if (obj.prop == null) {
obj.onEnterFrame = this._objOnEnterFrame;
} else if (obj.meth == null) {
obj.onEnterFrame = this._propOnEnterFrame;
} else {
obj.onEnterFrame = this._mcOnEnterFrame;
}
if (obj.args.length == 0) {
obj.args = [0, 0, 0, 0];
}
MovieClip.addListener(obj);
j++;
}
};
Sequencer.prototype._objOnEnterFrame = function() {
this.obj[this.meth].apply(this.mc, this.args);
MovieClip.removeListener(this);
delete this.onEnterFrame;
};
Sequencer.prototype._propOnEnterFrame = function() {
this.mc[this.prop] = this.args[0];
MovieClip.removeListener(this);
delete this.onEnterFrame;
};
Sequencer.prototype._mcOnEnterFrame = function() {
this.mc[this.prop] = this.obj[this.meth].apply(this.mc, this.args);
if ((this.args[0]++) == this.args[3]) {
this.args[0] = 0;
MovieClip.removeListener(this);
delete this.onEnterFrame;
}
};
Sequencer.prototype.stop = function() {
MovieClip.removeListener(this);
};
i use this like:
func_bonsai = new Sequencer(1, {mc:lisc, prop:"_x", obj:Math, meth:"easeOutBack", args:[200, 15]}, 10, {mc:apla, prop:"_x", obj:Math, meth:"easeOutExpo", args:[-368, 20]}, 25, {mc:_level0.fx.open, prop:null, obj:_level0.fx.open, meth:"start", args:[]}, 25, {mc:_level0.fx.open, prop:null, obj:_level0.fx.open, meth:"setVolume", args:[40]}, 25, {mc:apla, prop:"_quality", obj:null, meth:null, args:["medium"]}, 25, {mc:boja.menu, prop:"_x", obj:Math, meth:"easeOutExpo", args:[-20, 20]}, 50, {mc:sub_menu, prop:"_y", obj:Math, meth:"easeOutBack", args:[45, 25]});
my uqation is this, can I use this for Functions, and or if can someone point me in the right direction to have similar code to use whit functions
thsnks