root / trunk / web / dojo / dojox / timing / Sequence.js
History | View | Annotate | Download (1.66 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
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.timing.Sequence"]){ |
||
9 | dojo._hasResource["dojox.timing.Sequence"]=true; |
||
10 | dojo.provide("dojox.timing.Sequence");
|
||
11 | dojo.experimental("dojox.timing.Sequence");
|
||
12 | dojo.declare("dojox.timing.Sequence",null,{_goOnPause:0,_running:false,constructor:function(){ |
||
13 | this._defsResolved=[];
|
||
14 | },go:function(_1,_2){ |
||
15 | this._running=true; |
||
16 | dojo.forEach(_1,function(_3){
|
||
17 | if(_3.repeat>1){ |
||
18 | var _4=_3.repeat;
|
||
19 | for(var j=0;j<_4;j++){ |
||
20 | _3.repeat=1;
|
||
21 | this._defsResolved.push(_3);
|
||
22 | } |
||
23 | }else{
|
||
24 | this._defsResolved.push(_3);
|
||
25 | } |
||
26 | },this);
|
||
27 | var _5=_1[_1.length-1]; |
||
28 | if(_2){
|
||
29 | this._defsResolved.push({func:_2}); |
||
30 | } |
||
31 | this._defsResolved.push({func:[this.stop,this]}); |
||
32 | this._curId=0; |
||
33 | this._go();
|
||
34 | },_go:function(){ |
||
35 | if(!this._running){ |
||
36 | return;
|
||
37 | } |
||
38 | var _6=this._defsResolved[this._curId]; |
||
39 | this._curId+=1; |
||
40 | function _7(_8){ |
||
41 | var _9=null; |
||
42 | if(dojo.isArray(_8)){
|
||
43 | if(_8.length>2){ |
||
44 | _9=_8[0].apply(_8[1],_8.slice(2)); |
||
45 | }else{
|
||
46 | _9=_8[0].apply(_8[1]); |
||
47 | } |
||
48 | }else{
|
||
49 | _9=_8(); |
||
50 | } |
||
51 | return _9;
|
||
52 | }; |
||
53 | if(this._curId>=this._defsResolved.length){ |
||
54 | _7(_6.func); |
||
55 | return;
|
||
56 | } |
||
57 | if(_6.pauseAfter){
|
||
58 | if(_7(_6.func)!==false){ |
||
59 | setTimeout(dojo.hitch(this,"_go"),_6.pauseAfter); |
||
60 | }else{
|
||
61 | this._goOnPause=_6.pauseAfter;
|
||
62 | } |
||
63 | }else{
|
||
64 | if(_6.pauseBefore){
|
||
65 | var x=dojo.hitch(this,function(){ |
||
66 | if(_7(_6.func)!==false){ |
||
67 | this._go();
|
||
68 | } |
||
69 | }); |
||
70 | setTimeout(x,_6.pauseBefore); |
||
71 | }else{
|
||
72 | if(_7(_6.func)!==false){ |
||
73 | this._go();
|
||
74 | } |
||
75 | } |
||
76 | } |
||
77 | },goOn:function(){ |
||
78 | if(this._goOnPause){ |
||
79 | setTimeout(dojo.hitch(this,"_go"),this._goOnPause); |
||
80 | this._goOnPause=0; |
||
81 | }else{
|
||
82 | this._go();
|
||
83 | } |
||
84 | },stop:function(){ |
||
85 | this._running=false; |
||
86 | }}); |
||
87 | } |