#include "11240-easing_equations.html" /* 18.10.2004 version 1.1.8 AS1 pauseAll() unpauseAll() now works with loaded movies (thanks to J.G.) fixed bug in stopTween with delayed tweens(thanks to Petzo) added colorTo(null) or only colorTo() to reset color transformation of movieclip to normal mode (thanks for tip to James Rowley) AsBroadcaster initialization now not removes old listeners (thanks to Ivan Dembicki) depth of controlling Movieclip is now negative /-6789/ (thanks to Ivan Dembicki) fix FP7 problems using _global keyword (thanks to orangechicken) fixed growing of ints array when you use very much delayed tweens found and fixed FP7 problem with animtype parameter the animtype must be written in correct way ('easeOutBounce' not only 'easeoutbounce') else is used default easeOutExpo fixed bug with bandwich profiler, if you press ctrl enter during tween the tweens was not running */ // var Mp = MovieClip.prototype; // Mp.addListener = function() { if (!this._listeners) { AsBroadcaster.initialize(this); } this.addListener.apply(this,arguments); }; ASSetPropFlags(Mp, "addListener", 1, 0); // function tweenManager() { this.playing = false this.autoStop = false; this.broadcastEvents = false; this.autoOverwrite = true; this.tweenList = new Array() this.ints = new Array(); this.lockedTweens = new Object(); this.now = 0; this.isPaused = false; this.pausedTime = 0; } var tp = tweenManager.prototype; tp.setupdateInterval = function(time){ if (this.playing){ this.deinit() this.updateTime = time this.init() }else{ this.updateTime = time } } tp.getupdateInterval = function(){ return this.updateTime; } tp.addProperty("updateInterval",tp.getupdateInterval, tp.setupdateInterval); // tp.init = function(){ var tm = this; if(tm.updateTime > 0){ tm.updateIntId = setInterval(tm,"update",tm.updateTime); }else{ if(tm.tweenHolder._name == undefined){ tm.tweenHolder = _root.createEmptyMovieClip("_th_",6789); } //tweenHolder.onEnterFrame = update tm.tweenHolder.onEnterFrame = function(){ tm.update.call(tm); } } tm.playing = true; tm.now = getTimer(); } // tp.deinit = function(){ this.playing = false; clearInterval(this.updateIntId); delete this.tweenHolder.onEnterFrame; } //-------------------------- private methods tp.update = function() { var i, t, j,ttm; i = this.tweenList.length; if(this.broadcastEvents){ // list of updated mcs var ut = {}; // list of ending mcs var et = {}; } while (i--) { t = this.tweenList[i]; if (t.ts+t.d>this.now) { // compute value using equation function if (t.ctm == undefined) { // compute primitive value t.mc[t.pp] = t.ef(this.now-t.ts, t.ps, t.ch, t.d, t.e1, t.e2); } else { // compute color transform matrix // stm is starting transform matrix, // ctm is change in start & destination matrix // ttm is computed (temporary) transform matrix // c is color object ttm = {}; for (j in t.ctm) { ttm[j] = t.ef(this.now-t.ts, t.stm[j], t.ctm[j], t.d, t.e1, t.e2); } t.c.setTransform(ttm); } if(this.broadcastEvents && ut[targetpath(t.mc)] == undefined){ ut[targetpath(t.mc)] = t.mc; } if(t.cb.updfunc != undefined){ t.cb.updfunc.apply(t.cb.updscope,t.cb.updargs); } } else { // end , set up the property to end value; if (t.ctm == undefined) { t.mc[t.pp] = t.ps+t.ch; } else { ttm = {}; for (j in t.ctm) { ttm[j] = t.stm[j]+t.ctm[j]; } t.c.setTransform(ttm); } if(this.broadcastEvents){ if(ut[targetpath(t.mc)] == undefined){ ut[targetpath(t.mc)] = t.mc; } if(et[targetpath(t.mc)] == undefined){ et[targetpath(t.mc)] = t.mc; } } if(t.cb.updfunc != undefined){ t.cb.updfunc.apply(t.cb.updscope,t.cb.updargs); } if (endt == undefined){ var endt = new Array(); } endt.push(i); } } for (j in ut){ ut[j].broadcastMessage('onTweenUpdate'); } if(endt != undefined){ this.endTweens(endt); } for (j in et){ et[j].broadcastMessage('onTweenEnd'); } this.now = getTimer(); // update timer if (this.updateTime > 0){ updateAfterEvent(); } }; tp.endTweens = function(tid_arr){ var cb_arr, tl, i, cb, j cb_arr = [] // splice tweens from tweenlist tl = tid_arr.length with(this){ for (i = 0; i 0){ _global.$tweenManager.addTweenWithDelay(delay,this, props, pEnd, seconds, eqf, callback, extra1, extra2); }else{ _global.$tweenManager.addTween(this, props, pEnd, seconds, eqf, callback, extra1, extra2); } }; ASSetPropFlags(Mp, "tween", 1, 0); Mp.stopTween = function(props) { if (typeof (props) == "string") { props = [props]; } _global.$tweenManager.removeTween(this, props); }; ASSetPropFlags(Mp, "stopTween", 1, 0); Mp.isTweening = function() { //returns boolean return _global.$tweenManager.isTweening(this); }; ASSetPropFlags(Mp, "isTweening", 1, 0); Mp.getTweens = function() { // returns count of running tweens return _global.$tweenManager.getTweens(this); }; ASSetPropFlags(Mp, "getTweens", 1, 0); Mp.lockTween = function() { _global.$tweenManager.lockTween(this,true); }; ASSetPropFlags(Mp, "lockTween", 1, 0); Mp.unlockTween = function() { _global.$tweenManager.lockTween(this,false); }; ASSetPropFlags(Mp, "unlockTween", 1, 0); Mp.isTweenLocked = function() { return _global.$tweenManager.isTweenLocked(this); }; ASSetPropFlags(Mp, "isTweenLocked", 1, 0); // == shortcut methods == // these methods only passes parameters to tween method Mp.alphaTo = function (destAlpha, seconds, animType, delay, callback, extra1, extra2) { this.tween(["_alpha"],[destAlpha],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "alphaTo", 1, 0); Mp.brightnessTo = function (bright, seconds, animType, delay, callback, extra1, extra2) { // destionation color transform matrix var percent = 100 - Math.abs(bright); var offset = 0; if (bright > 0) offset = 256 * (bright / 100); var destCt = {ra: percent, rb:offset, ga: percent, gb:offset, ba: percent,bb:offset} // this.tween(["_ct_"],[destCt],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "brightnessTo", 1, 0); Mp.colorTo = function (destColor, seconds, animType, delay, callback, extra1, extra2) { // destionation color transform matrix var destCt; if (destColor == undefined || destColor == null){ destCt = {rb:0, ra:100, gb:0, ga:100, bb:0, ba:100}; }else { destCt = {rb: destColor >> 16, ra:0, gb: (destColor & 0x00FF00) >> 8, ga:0, bb: destColor & 0x0000FF,ba:0} } // this.tween(["_ct_"],[destCt],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "colorTo", 1, 0); Mp.colorTransformTo = function (ra, rb, ga, gb, ba, bb, aa, ab, seconds, animType, delay, callback, extra1, extra2) { // destionation color transform matrix var destCt = {ra: ra ,rb: rb , ga: ga, gb: gb, ba: ba, bb: bb, aa: aa, ab: ab} // this.tween(["_ct_"],[destCt],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "colorTransformTo", 1, 0); Mp.scaleTo = function (destScale, seconds, animType, delay, callback, extra1, extra2) { this.tween(["_xscale", "_yscale"],[destScale, destScale],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "scaleTo", 1, 0); Mp.slideTo = function (destX, destY, seconds, animType, delay, callback, extra1, extra2) { this.tween(["_x", "_y"],[destX, destY],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "slideTo", 1, 0); Mp.rotateTo = function (destRotation, seconds, animType, delay, callback, extra1, extra2) { this.tween(["_rotation"],[destRotation],seconds,animType,delay,callback,extra1,extra2) } ASSetPropFlags(Mp, "rotateTo", 1, 0); // Mp.getFrame = function() { return this._currentframe; }; ASSetPropFlags(Mp, "getFrame", 1, 0); Mp.setFrame = function(fr) { this.gotoAndStop(Math.round(fr)); }; ASSetPropFlags(Mp, "setFrame", 1, 0); Mp.addProperty("_frame", Mp.getFrame, Mp.setFrame); ASSetPropFlags(Mp, "_frame", 1, 0); // Mp.frameTo = function(endframe, duration, animType, delay, callback, extra1, extra2) { if (endframe == undefined) { endframe = this._totalframes; } this.tween("_frame", endframe, duration, animType, delay, callback, extra1, extra2); }; ASSetPropFlags(Mp, "frameTo", 1, 0); Mp.brightOffsetTo = function(percent, seconds, animType, delay, callback, extra1, extra2) { var offset = 256*(percent/100); var destCt = {ra:100, rb:offset, ga:100, gb:offset, ba:100, bb:offset}; this.tween(["_ct_"], [destCt], seconds, animType, delay, callback, extra1, extra2); }; ASSetPropFlags(Mp, "brightOffsetTo", 1, 0); Mp.contrastTo = function(percent, seconds, animType, delay, callback, extra1, extra2) { // from Robert Penner color toolkit var t = {}; t.ra = t.ga=t.ba=percent; t.rb = t.gb=t.bb=128-(128/100*percent); this.tween(["_ct_"], [t], seconds, animType, delay, callback, extra1, extra2); }; ASSetPropFlags(Mp, "contrastTo", 1, 0); // delete Mp;