1
7 import caurina.transitions.AuxFunctions;
8
9 class caurina.transitions.TweenListObj {
10
11 public var scope :Object;
12 public var properties :Object;
13
14
15 public var timeStart :Number;
16 public var timeComplete :Number;
17 public var useFrames :Boolean;
18 public var transition :Function;
19 public var transitionParams :Object;
20 public var onStart :Function;
21 public var onUpdate :Function;
22 public var onComplete :Function;
23 public var onOverwrite :Function;
24 public var onError :Function;
25 public var onStartParams :Array;
26 public var onUpdateParams :Array;
27 public var onCompleteParams :Array;
28 public var onOverwriteParams :Array;
29 public var onStartScope :Object;
30 public var onUpdateScope :Object;
31 public var onCompleteScope :Object;
32 public var onOverwriteScope :Object;
33 public var onErrorScope :Object;
34 public var rounded :Boolean;
35 public var isPaused :Boolean;
36 public var timePaused :Number;
37 public var isCaller :Boolean;
38 public var count :Number;
39 public var timesCalled :Number;
40 public var waitFrames :Boolean;
41 public var skipUpdates :Number;
42 public var updatesSkipped :Number;
43 public var hasStarted :Boolean;
44
45
46
47
48
57 function TweenListObj(p_scope:Object, p_timeStart:Number, p_timeComplete:Number, p_useFrames:Boolean, p_transition:Function, p_transitionParams:Object) {
58 scope = p_scope;
59 timeStart = p_timeStart;
60 timeComplete = p_timeComplete;
61 useFrames = p_useFrames;
62 transition = p_transition;
63 transitionParams = p_transitionParams;
64
65
66 properties = new Object();
67 isPaused = false;
68 timePaused = undefined;
69 isCaller = false;
70 updatesSkipped = 0;
71 timesCalled = 0;
72 skipUpdates = 0;
73 hasStarted = false;
74 }
75
76
77
78
79
80
86 public function clone(omitEvents:Boolean):TweenListObj {
87 var nTween:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams);
88 nTween.properties = new Object();
89 for (var pName:String in properties) {
90 nTween.properties[pName] = properties[pName].clone();
91 }
92 nTween.skipUpdates = skipUpdates;
93 nTween.updatesSkipped = updatesSkipped;
94 if (!omitEvents) {
95 nTween.onStart = onStart;
96 nTween.onUpdate = onUpdate;
97 nTween.onComplete = onComplete;
98 nTween.onOverwrite = onOverwrite;
99 nTween.onError = onError;
100 nTween.onStartParams = onStartParams;
101 nTween.onUpdateParams = onUpdateParams;
102 nTween.onCompleteParams = onCompleteParams;
103 nTween.onOverwriteParams = onOverwriteParams;
104 nTween.onStartScope = onStartScope;
105 nTween.onUpdateScope = onUpdateScope;
106 nTween.onCompleteScope = onCompleteScope;
107 nTween.onOverwriteScope = onOverwriteScope;
108 nTween.onErrorScope = onErrorScope;
109 }
110 nTween.rounded = rounded;
111 nTween.isPaused = isPaused;
112 nTween.timePaused = timePaused;
113 nTween.isCaller = isCaller;
114 nTween.count = count;
115 nTween.timesCalled = timesCalled;
116 nTween.waitFrames = waitFrames;
117 nTween.hasStarted = hasStarted;
118
119 return nTween;
120 }
121
122
127 public function toString():String {
128 var returnStr:String = "\n[TweenListObj ";
129 returnStr += "scope:" + String(scope);
130 returnStr += ", properties:";
131 var isFirst:Boolean = true;
132 for (var i:String in properties) {
133 if (!isFirst) returnStr += ",";
134 returnStr += "[name:"+properties[i].name;
135 returnStr += ",valueStart:"+properties[i].valueStart;
136 returnStr += ",valueComplete:"+properties[i].valueComplete;
137 returnStr += "]";
138 isFirst = false;
139 }
140 returnStr += ", timeStart:" + String(timeStart);
141 returnStr += ", timeComplete:" + String(timeComplete);
142 returnStr += ", useFrames:" + String(useFrames);
143 returnStr += ", transition:" + String(transition);
144 returnStr += ", transitionParams:" + String(transitionParams);
145
146 if (skipUpdates) returnStr += ", skipUpdates:" + String(skipUpdates);
147 if (updatesSkipped) returnStr += ", updatesSkipped:" + String(updatesSkipped);
148
149 if (onStart) returnStr += ", onStart:" + String(onStart);
150 if (onUpdate) returnStr += ", onUpdate:" + String(onUpdate);
151 if (onComplete) returnStr += ", onComplete:" + String(onComplete);
152 if (onOverwrite) returnStr += ", onOverwrite:" + String(onOverwrite);
153 if (onError) returnStr += ", onError:" + String(onError);
154
155 if (onStartParams) returnStr += ", onStartParams:" + String(onStartParams);
156 if (onUpdateParams) returnStr += ", onUpdateParams:" + String(onUpdateParams);
157 if (onCompleteParams) returnStr += ", onCompleteParams:" + String(onCompleteParams);
158 if (onOverwriteParams) returnStr += ", onOverwriteParams:" + String(onOverwriteParams);
159
160 if (onStartScope) returnStr += ", onStartScope:" + String(onStartScope);
161 if (onUpdateScope) returnStr += ", onUpdateScope:" + String(onUpdateScope);
162 if (onCompleteScope) returnStr += ", onCompleteScope:" + String(onCompleteScope);
163 if (onOverwriteScope) returnStr += ", onOverwriteScope:" + String(onOverwriteScope);
164 if (onErrorScope) returnStr += ", onErrorScope:" + String(onErrorScope);
165
166 if (rounded) returnStr += ", rounded:" + String(rounded);
167 if (isPaused) returnStr += ", isPaused:" + String(isPaused);
168 if (timePaused) returnStr += ", timePaused:" + String(timePaused);
169 if (isCaller) returnStr += ", isCaller:" + String(isCaller);
170 if (count) returnStr += ", count:" + String(count);
171 if (timesCalled) returnStr += ", timesCalled:" + String(timesCalled);
172 if (waitFrames) returnStr += ", waitFrames:" + String(waitFrames);
173 if (hasStarted) returnStr += ", hasStarted:" + String(hasStarted);
174
175 returnStr += "]\n";
176 return returnStr;
177 }
178
179
187
188 public static function makePropertiesChain(p_obj : Object) : Object{
189
190 var baseObject : Object = p_obj.base;
191 if(baseObject){
192
193 var chainedObject : Object = {};
194 var chain : Object;
195 if (baseObject instanceof Array){
196
197 chain = [];
198
199 for (var k : Number = 0 ; k< baseObject.length; k++) chain.push(baseObject[k]);
200 }else{
201
202 chain = [baseObject];
203 }
204
205 chain.push(p_obj);
206 var currChainObj : Object;
207
208 var len : Number = chain.length;
209 for(var i : Number = 0; i < len ; i ++){
210 if(chain[i]["base"]){
211
212 currChainObj = AuxFunctions.concatObjects( makePropertiesChain(chain[i]["base"] ), chain[i]);
213 }else{
214 currChainObj = chain[i] ;
215 }
216 chainedObject = AuxFunctions.concatObjects(chainedObject, currChainObj );
217 }
218 if( chainedObject["base"]){
219 delete chainedObject["base"];
220 }
221 return chainedObject;
222 }else{
223
224 return p_obj;
225 }
226 }
227 }
228