root / trunk / web / dojo / dojox / fx / ext-dojo / reverse.js @ 13
History | View | Annotate | Download (1.36 KB)
| 1 |
/*
|
|---|---|
| 2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
| 3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
| 4 |
see: http://dojotoolkit.org/license for details
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
if(!dojo._hasResource["dojox.fx.ext-dojo.reverse"]){ |
| 9 |
dojo._hasResource["dojox.fx.ext-dojo.reverse"]=true; |
| 10 |
dojo.provide("dojox.fx.ext-dojo.reverse");
|
| 11 |
dojo.require("dojo.fx.easing");
|
| 12 |
dojo.require("dojo.fx");
|
| 13 |
dojo.extend(dojo.Animation,{_reversed:false,reverse:function(_1,_2){
|
| 14 |
var _3=this.status()=="playing"; |
| 15 |
this.pause();
|
| 16 |
this._reversed=!this._reversed; |
| 17 |
var d=this.duration,_4=d*this._percent,_5=d-_4,_6=new Date().valueOf(),cp=this.curve._properties,p=this.properties,nm; |
| 18 |
this._endTime=_6+_4;
|
| 19 |
this._startTime=_6-_5;
|
| 20 |
if(_3){
|
| 21 |
this.gotoPercent(_5/d);
|
| 22 |
} |
| 23 |
for(nm in p){ |
| 24 |
var _7=p[nm].start;
|
| 25 |
p[nm].start=cp[nm].start=p[nm].end; |
| 26 |
p[nm].end=cp[nm].end=_7; |
| 27 |
} |
| 28 |
if(this._reversed){ |
| 29 |
if(!this.rEase){ |
| 30 |
this.fEase=this.easing; |
| 31 |
if(_2){
|
| 32 |
this.rEase=_2;
|
| 33 |
}else{
|
| 34 |
var de=dojo.fx.easing,_8,_9;
|
| 35 |
for(nm in de){ |
| 36 |
if(this.easing==de[nm]){ |
| 37 |
_8=nm; |
| 38 |
break;
|
| 39 |
} |
| 40 |
} |
| 41 |
if(_8){
|
| 42 |
if(/InOut/.test(nm)||!/In|Out/i.test(nm)){ |
| 43 |
this.rEase=this.easing; |
| 44 |
}else{
|
| 45 |
if(/In/.test(nm)){ |
| 46 |
_9=nm.replace("In","Out"); |
| 47 |
}else{
|
| 48 |
_9=nm.replace("Out","In"); |
| 49 |
} |
| 50 |
} |
| 51 |
if(_9){
|
| 52 |
this.rEase=dojo.fx.easing[_9];
|
| 53 |
} |
| 54 |
}else{
|
| 55 |
this.rEase=this.easing; |
| 56 |
} |
| 57 |
} |
| 58 |
} |
| 59 |
this.easing=this.rEase; |
| 60 |
}else{
|
| 61 |
this.easing=this.fEase; |
| 62 |
} |
| 63 |
if(!_1&&this.status()!="playing"){ |
| 64 |
this.play();
|
| 65 |
} |
| 66 |
return this; |
| 67 |
}}); |
| 68 |
} |