チェンジセット 3422
- コミット日時:
- 2010/02/15 19:21:34 (7 ヶ月前)
- ファイル:
-
- as3/BetweenAS3/trunk/CHANGES (更新) (1 diff)
- as3/BetweenAS3/trunk/CHANGES.ja (更新) (1 diff)
- as3/BetweenAS3/trunk/src/fp10/org/libspark/betweenas3/tickers/EnterFrameTicker.as (更新) (6 diffs)
- as3/BetweenAS3/trunk/src/fp9/org/libspark/betweenas3/tickers/EnterFrameTicker.as (更新) (6 diffs)
- as3/BetweenAS3/trunk/tests/fp10/OverwriteTest.as (追加)
- as3/BetweenAS3/trunk/tests/fp10/org/libspark/betweenas3/tickers/EnterFrameTickerTest.as (更新) (5 diffs)
- as3/BetweenAS3/trunk/tests/fp9/OverwriteTest.as (追加)
- as3/BetweenAS3/trunk/tests/fp9/org/libspark/betweenas3/tickers/EnterFrameTickerTest.as (更新) (5 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/BetweenAS3/trunk/CHANGES
r3080 r3422 4 4 Alpha r3022 -> HEAD 5 5 -------------------- 6 7 * [r3422] Added an overwrite like behavior. 8 9 BetweenAS3 will not stop old tweens like Tweener, but gives priority to new tween's values. 6 10 7 11 * [r3080] Fix: gotoAndPlay will not affected while playing. (#107) as3/BetweenAS3/trunk/CHANGES.ja
r3080 r3422 4 4 Alpha r3022 -> HEAD 5 5 -------------------- 6 7 * [r3422] オーバーライトっぽい挙動をするように変更 8 9 Tweener のように古いトゥイーンを停止はしませんが、新しいトゥイーンの値が優先されるようになりました 6 10 7 11 * [r3080] 修正: play 中の gotoAndPlay が効かない (#107) as3/BetweenAS3/trunk/src/fp10/org/libspark/betweenas3/tickers/EnterFrameTicker.as
r3077 r3422 61 61 62 62 private var _first:TickerListener = null; 63 private var _last:TickerListener = null; 63 64 private var _numListeners:uint = 0; 64 65 private var _tickerListenerPaddings:Vector.<TickerListener>; … … 82 83 } 83 84 84 if (_first != null) { 85 if (_first.prevListener != null) { 86 _first.prevListener.nextListener = listener; 87 listener.prevListener = _first.prevListener; 88 } 89 listener.nextListener = _first; 90 _first.prevListener = listener; 91 } 92 93 _first = listener; 85 if (_last != null) { 86 if (_last.nextListener != null) { 87 _last.nextListener.prevListener = listener; 88 listener.nextListener = _last.nextListener; 89 } 90 listener.prevListener = _last; 91 _last.nextListener = listener; 92 } 93 94 _last = listener; 95 96 if (_first == null) { 97 _first = listener; 98 } 94 99 95 100 ++_numListeners; … … 117 122 l.prevListener = null; 118 123 } 124 else { 125 _last = l.prevListener; 126 } 119 127 --_numListeners; 120 128 } … … 150 158 // リスナの数を 8 の倍数になるようにパディングして 8 個ずつ一気にループさせる 151 159 152 var t:Number = _time = getTimer() / 1000, n:uint = 8 - (_numListeners % 8), listener:TickerListener = _tickerListenerPaddings[0], l:TickerListener = _tickerListenerPaddings[n], ll:TickerListener = null;160 var t:Number = _time = getTimer() / 1000, i:int = (_numListeners / 8 + 1) | 0, n:uint = i * 8 - _numListeners, listener:TickerListener = _tickerListenerPaddings[0], l:TickerListener = _tickerListenerPaddings[n], ll:TickerListener = null; 153 161 154 162 // このようにつなぎかえることでパディングの数を変える … … 157 165 } 158 166 159 while (listener.nextListener != null) { 160 if ((listener = listener.nextListener).tick(t)) { 161 if (listener.prevListener != null) { 162 listener.prevListener.nextListener = listener.nextListener; 163 } 164 if (listener.nextListener != null) { 165 listener.nextListener.prevListener = listener.prevListener; 166 } 167 if (listener == _first) { 168 _first = listener.nextListener; 169 } 170 ll = listener.prevListener; 171 listener.nextListener = null; 172 listener.prevListener = null; 173 listener = ll; 174 --_numListeners; 175 } 176 if ((listener = listener.nextListener).tick(t)) { 177 if (listener.prevListener != null) { 178 listener.prevListener.nextListener = listener.nextListener; 179 } 180 if (listener.nextListener != null) { 181 listener.nextListener.prevListener = listener.prevListener; 182 } 183 if (listener == _first) { 184 _first = listener.nextListener; 185 } 186 ll = listener.prevListener; 187 listener.nextListener = null; 188 listener.prevListener = null; 189 listener = ll; 190 --_numListeners; 191 } 192 if ((listener = listener.nextListener).tick(t)) { 193 if (listener.prevListener != null) { 194 listener.prevListener.nextListener = listener.nextListener; 195 } 196 if (listener.nextListener != null) { 197 listener.nextListener.prevListener = listener.prevListener; 198 } 199 if (listener == _first) { 200 _first = listener.nextListener; 201 } 202 ll = listener.prevListener; 203 listener.nextListener = null; 204 listener.prevListener = null; 205 listener = ll; 206 --_numListeners; 207 } 208 if ((listener = listener.nextListener).tick(t)) { 209 if (listener.prevListener != null) { 210 listener.prevListener.nextListener = listener.nextListener; 211 } 212 if (listener.nextListener != null) { 213 listener.nextListener.prevListener = listener.prevListener; 214 } 215 if (listener == _first) { 216 _first = listener.nextListener; 217 } 218 ll = listener.prevListener; 219 listener.nextListener = null; 220 listener.prevListener = null; 221 listener = ll; 222 --_numListeners; 223 } 224 if ((listener = listener.nextListener).tick(t)) { 225 if (listener.prevListener != null) { 226 listener.prevListener.nextListener = listener.nextListener; 227 } 228 if (listener.nextListener != null) { 229 listener.nextListener.prevListener = listener.prevListener; 230 } 231 if (listener == _first) { 232 _first = listener.nextListener; 233 } 234 ll = listener.prevListener; 235 listener.nextListener = null; 236 listener.prevListener = null; 237 listener = ll; 238 --_numListeners; 239 } 240 if ((listener = listener.nextListener).tick(t)) { 241 if (listener.prevListener != null) { 242 listener.prevListener.nextListener = listener.nextListener; 243 } 244 if (listener.nextListener != null) { 245 listener.nextListener.prevListener = listener.prevListener; 246 } 247 if (listener == _first) { 248 _first = listener.nextListener; 249 } 250 ll = listener.prevListener; 251 listener.nextListener = null; 252 listener.prevListener = null; 253 listener = ll; 254 --_numListeners; 255 } 256 if ((listener = listener.nextListener).tick(t)) { 257 if (listener.prevListener != null) { 258 listener.prevListener.nextListener = listener.nextListener; 259 } 260 if (listener.nextListener != null) { 261 listener.nextListener.prevListener = listener.prevListener; 262 } 263 if (listener == _first) { 264 _first = listener.nextListener; 265 } 266 ll = listener.prevListener; 267 listener.nextListener = null; 268 listener.prevListener = null; 269 listener = ll; 270 --_numListeners; 271 } 272 if ((listener = listener.nextListener).tick(t)) { 273 if (listener.prevListener != null) { 274 listener.prevListener.nextListener = listener.nextListener; 275 } 276 if (listener.nextListener != null) { 277 listener.nextListener.prevListener = listener.prevListener; 278 } 279 if (listener == _first) { 280 _first = listener.nextListener; 167 while (--i >= 0) { 168 if ((listener = listener.nextListener).tick(t)) { 169 if (listener.prevListener != null) { 170 listener.prevListener.nextListener = listener.nextListener; 171 } 172 if (listener.nextListener != null) { 173 listener.nextListener.prevListener = listener.prevListener; 174 } 175 if (listener == _first) { 176 _first = listener.nextListener; 177 } 178 if (listener == _last) { 179 _last = listener.prevListener; 180 } 181 ll = listener.prevListener; 182 listener.nextListener = null; 183 listener.prevListener = null; 184 listener = ll; 185 --_numListeners; 186 } 187 if ((listener = listener.nextListener).tick(t)) { 188 if (listener.prevListener != null) { 189 listener.prevListener.nextListener = listener.nextListener; 190 } 191 if (listener.nextListener != null) { 192 listener.nextListener.prevListener = listener.prevListener; 193 } 194 if (listener == _first) { 195 _first = listener.nextListener; 196 } 197 if (listener == _last) { 198 _last = listener.prevListener; 199 } 200 ll = listener.prevListener; 201 listener.nextListener = null; 202 listener.prevListener = null; 203 listener = ll; 204 --_numListeners; 205 } 206 if ((listener = listener.nextListener).tick(t)) { 207 if (listener.prevListener != null) { 208 listener.prevListener.nextListener = listener.nextListener; 209 } 210 if (listener.nextListener != null) { 211 listener.nextListener.prevListener = listener.prevListener; 212 } 213 if (listener == _first) { 214 _first = listener.nextListener; 215 } 216 if (listener == _last) { 217 _last = listener.prevListener; 218 } 219 ll = listener.prevListener; 220 listener.nextListener = null; 221 listener.prevListener = null; 222 listener = ll; 223 --_numListeners; 224 } 225 if ((listener = listener.nextListener).tick(t)) { 226 if (listener.prevListener != null) { 227 listener.prevListener.nextListener = listener.nextListener; 228 } 229 if (listener.nextListener != null) { 230 listener.nextListener.prevListener = listener.prevListener; 231 } 232 if (listener == _first) { 233 _first = listener.nextListener; 234 } 235 if (listener == _last) { 236 _last = listener.prevListener; 237 } 238 ll = listener.prevListener; 239 listener.nextListener = null; 240 listener.prevListener = null; 241 listener = ll; 242 --_numListeners; 243 } 244 if ((listener = listener.nextListener).tick(t)) { 245 if (listener.prevListener != null) { 246 listener.prevListener.nextListener = listener.nextListener; 247 } 248 if (listener.nextListener != null) { 249 listener.nextListener.prevListener = listener.prevListener; 250 } 251 if (listener == _first) { 252 _first = listener.nextListener; 253 } 254 if (listener == _last) { 255 _last = listener.prevListener; 256 } 257 ll = listener.prevListener; 258 listener.nextListener = null; 259 listener.prevListener = null; 260 listener = ll; 261 --_numListeners; 262 } 263 if ((listener = listener.nextListener).tick(t)) { 264 if (listener.prevListener != null) { 265 listener.prevListener.nextListener = listener.nextListener; 266 } 267 if (listener.nextListener != null) { 268 listener.nextListener.prevListener = listener.prevListener; 269 } 270 if (listener == _first) { 271 _first = listener.nextListener; 272 } 273 if (listener == _last) { 274 _last = listener.prevListener; 275 } 276 ll = listener.prevListener; 277 listener.nextListener = null; 278 listener.prevListener = null; 279 listener = ll; 280 --_numListeners; 281 } 282 if ((listener = listener.nextListener).tick(t)) { 283 if (listener.prevListener != null) { 284 listener.prevListener.nextListener = listener.nextListener; 285 } 286 if (listener.nextListener != null) { 287 listener.nextListener.prevListener = listener.prevListener; 288 } 289 if (listener == _first) { 290 _first = listener.nextListener; 291 } 292 if (listener == _last) { 293 _last = listener.prevListener; 294 } 295 ll = listener.prevListener; 296 listener.nextListener = null; 297 listener.prevListener = null; 298 listener = ll; 299 --_numListeners; 300 } 301 if ((listener = listener.nextListener).tick(t)) { 302 if (listener.prevListener != null) { 303 listener.prevListener.nextListener = listener.nextListener; 304 } 305 if (listener.nextListener != null) { 306 listener.nextListener.prevListener = listener.prevListener; 307 } 308 if (listener == _first) { 309 _first = listener.nextListener; 310 } 311 if (listener == _last) { 312 _last = listener.prevListener; 281 313 } 282 314 ll = listener.prevListener; … … 292 324 _first.prevListener = null; 293 325 } 326 else { 327 _last = null; 328 } 294 329 l.nextListener = _tickerListenerPaddings[n + 1]; 295 330 } as3/BetweenAS3/trunk/src/fp9/org/libspark/betweenas3/tickers/EnterFrameTicker.as
r3078 r3422 61 61 62 62 private var _first:TickerListener = null; 63 private var _last:TickerListener = null; 63 64 private var _numListeners:uint = 0; 64 65 private var _tickerListenerPaddings:Array; … … 82 83 } 83 84 84 if (_first != null) { 85 if (_first.prevListener != null) { 86 _first.prevListener.nextListener = listener; 87 listener.prevListener = _first.prevListener; 88 } 89 listener.nextListener = _first; 90 _first.prevListener = listener; 91 } 92 93 _first = listener; 85 if (_last != null) { 86 if (_last.nextListener != null) { 87 _last.nextListener.prevListener = listener; 88 listener.nextListener = _last.nextListener; 89 } 90 listener.prevListener = _last; 91 _last.nextListener = listener; 92 } 93 94 _last = listener; 95 96 if (_first == null) { 97 _first = listener; 98 } 94 99 95 100 ++_numListeners; … … 117 122 l.prevListener = null; 118 123 } 124 else { 125 _last = l.prevListener; 126 } 119 127 --_numListeners; 120 128 } … … 150 158 // リスナの数を 8 の倍数になるようにパディングして 8 個ずつ一気にループさせる 151 159 152 var t:Number = _time = getTimer() / 1000, n:uint = 8 - (_numListeners % 8), listener:TickerListener = _tickerListenerPaddings[0] as TickerListener, l:TickerListener = _tickerListenerPaddings[n] as TickerListener, ll:TickerListener = null;160 var t:Number = _time = getTimer() / 1000, i:int = (_numListeners / 8 + 1) | 0, n:uint = i * 8 - _numListeners, listener:TickerListener = _tickerListenerPaddings[0] as TickerListener, l:TickerListener = _tickerListenerPaddings[n] as TickerListener, ll:TickerListener = null; 153 161 154 162 // このようにつなぎかえることでパディングの数を変える … … 157 165 } 158 166 159 while (listener.nextListener != null) { 160 if ((listener = listener.nextListener).tick(t)) { 161 if (listener.prevListener != null) { 162 listener.prevListener.nextListener = listener.nextListener; 163 } 164 if (listener.nextListener != null) { 165 listener.nextListener.prevListener = listener.prevListener; 166 } 167 if (listener == _first) { 168 _first = listener.nextListener; 169 } 170 ll = listener.prevListener; 171 listener.nextListener = null; 172 listener.prevListener = null; 173 listener = ll; 174 --_numListeners; 175 } 176 if ((listener = listener.nextListener).tick(t)) { 177 if (listener.prevListener != null) { 178 listener.prevListener.nextListener = listener.nextListener; 179 } 180 if (listener.nextListener != null) { 181 listener.nextListener.prevListener = listener.prevListener; 182 } 183 if (listener == _first) { 184 _first = listener.nextListener; 185 } 186 ll = listener.prevListener; 187 listener.nextListener = null; 188 listener.prevListener = null; 189 listener = ll; 190 --_numListeners; 191 } 192 if ((listener = listener.nextListener).tick(t)) { 193 if (listener.prevListener != null) { 194 listener.prevListener.nextListener = listener.nextListener; 195 } 196 if (listener.nextListener != null) { 197 listener.nextListener.prevListener = listener.prevListener; 198 } 199 if (listener == _first) { 200 _first = listener.nextListener; 201 } 202 ll = listener.prevListener; 203 listener.nextListener = null; 204 listener.prevListener = null; 205 listener = ll; 206 --_numListeners; 207 } 208 if ((listener = listener.nextListener).tick(t)) { 209 if (listener.prevListener != null) { 210 listener.prevListener.nextListener = listener.nextListener; 211 } 212 if (listener.nextListener != null) { 213 listener.nextListener.prevListener = listener.prevListener; 214 } 215 if (listener == _first) { 216 _first = listener.nextListener; 217 } 218 ll = listener.prevListener; 219 listener.nextListener = null; 220 listener.prevListener = null; 221 listener = ll; 222 --_numListeners; 223 } 224 if ((listener = listener.nextListener).tick(t)) { 225 if (listener.prevListener != null) { 226 listener.prevListener.nextListener = listener.nextListener; 227 } 228 if (listener.nextListener != null) { 229 listener.nextListener.prevListener = listener.prevListener; 230 } 231 if (listener == _first) { 232 _first = listener.nextListener; 233 } 234 ll = listener.prevListener; 235 listener.nextListener = null; 236 listener.prevListener = null; 237 listener = ll; 238 --_numListeners; 239 } 240 if ((listener = listener.nextListener).tick(t)) { 241 if (listener.prevListener != null) { 242 listener.prevListener.nextListener = listener.nextListener; 243 } 244 if (listener.nextListener != null) { 245 listener.nextListener.prevListener = listener.prevListener; 246 } 247 if (listener == _first) { 248 _first = listener.nextListener; 249 } 250 ll = listener.prevListener; 251 listener.nextListener = null; 252 listener.prevListener = null; 253 listener = ll; 254 --_numListeners; 255 } 256 if ((listener = listener.nextListener).tick(t)) { 257 if (listener.prevListener != null) { 258 listener.prevListener.nextListener = listener.nextListener; 259 } 260 if (listener.nextListener != null) { 261 listener.nextListener.prevListener = listener.prevListener; 262 } 263 if (listener == _first) { 264 _first = listener.nextListener; 265 } 266 ll = listener.prevListener; 267 listener.nextListener = null; 268 listener.prevListener = null; 269 listener = ll; 270 --_numListeners; 271 } 272 if ((listener = listener.nextListener).tick(t)) { 273 if (listener.prevListener != null) { 274 listener.prevListener.nextListener = listener.nextListener; 275 } 276 if (listener.nextListener != null) { 277 listener.nextListener.prevListener = listener.prevListener; 278 } 279 if (listener == _first) { 280 _first = listener.nextListener; 167 while (--i >= 0) { 168 if ((listener = listener.nextListener).tick(t)) { 169 if (listener.prevListener != null) { 170 listener.prevListener.nextListener = listener.nextListener; 171 } 172 if (listener.nextListener != null) { 173 listener.nextListener.prevListener = listener.prevListener; 174 } 175 if (listener == _first) { 176 _first = listener.nextListener; 177 } 178 if (listener == _last) { 179 _last = listener.prevListener; 180 } 181 ll = listener.prevListener; 182 listener.nextListener = null; 183 listener.prevListener = null; 184 listener = ll; 185 --_numListeners; 186 } 187 if ((listener = listener.nextListener).tick(t)) { 188 if (listener.prevListener != null) { 189 listener.prevListener.nextListener = listener.nextListener; 190 } 191 if (listener.nextListener != null) { 192 listener.nextListener.prevListener = listener.prevListener; 193 } 194 if (listener == _first) { 195 _first = listener.nextListener; 196 } 197 if (listener == _last) { 198 _last = listener.prevListener; 199 } 200 ll = listener.prevListener; 201 listener.nextListener = null; 202 listener.prevListener = null; 203 listener = ll; 204 --_numListeners; 205 } 206 if ((listener = listener.nextListener).tick(t)) { 207 if (listener.prevListener != null) { 208 listener.prevListener.nextListener = listener.nextListener; 209 } 210 if (listener.nextListener != null) { 211 listener.nextListener.prevListener = listener.prevListener; 212 } 213 if (listener == _first) { 214 _first = listener.nextListener; 215 } 216 if (listener == _last) { 217 _last = listener.prevListener; 218 } 219 ll = listener.prevListener; 220 listener.nextListener = null; 221 listener.prevListener = null; 222 listener = ll; 223 --_numListeners; 224 } 225 if ((listener = listener.nextListener).tick(t)) { 226 if (listener.prevListener != null) { 227 listener.prevListener.nextListener = listener.nextListener; 228 } 229 if (listener.nextListener != null) { 230 listener.nextListener.prevListener = listener.prevListener; 231 } 232 if (listener == _first) { 233 _first = listener.nextListener; 234 } 235 if (listener == _last) { 236 _last = listener.prevListener; 237 } 238 ll = listener.prevListener; 239 listener.nextListener = null; 240 listener.prevListener = null; 241 listener = ll; 242 --_numListeners; 243 } 244 if ((listener = listener.nextListener).tick(t)) { 245 if (listener.prevListener != null) { 246 listener.prevListener.nextListener = listener.nextListener; 247 } 248 if (listener.nextListener != null) { 249 listener.nextListener.prevListener = listener.prevListener; 250 } 251 if (listener == _first) { 252 _first = listener.nextListener; 253 } 254 if (listener == _last) { 255 _last = listener.prevListener; 256 } 257 ll = listener.prevListener; 258 listener.nextListener = null; 259 listener.prevListener = null; 260 listener = ll; 261 --_numListeners; 262 } 263 if ((listener = listener.nextListener).tick(t)) { 264 if (listener.prevListener != null) { 265 listener.prevListener.nextListener = listener.nextListener; 266 } 267 if (listener.nextListener != null) { 268 listener.nextListener.prevListener = listener.prevListener; 269 } 270 if (listener == _first) { 271 _first = listener.nextListener; 272 } 273 if (listener == _last) { 274 _last = listener.prevListener; 275 } 276 ll = listener.prevListener; 277 listener.nextListener = null; 278 listener.prevListener = null; 279 listener = ll; 280 --_numListeners; 281 } 282 if ((listener = listener.nextListener).tick(t)) { 283 if (listener.prevListener != null) { 284 listener.prevListener.nextListener = listener.nextListener; 285 } 286 if (listener.nextListener != null) { 287 listener.nextListener.prevListener = listener.prevListener; 288 } 289 if (listener == _first) { 290 _first = listener.nextListener; 291 } 292 if (listener == _last) { 293 _last = listener.prevListener; 294 } 295 ll = listener.prevListener; 296 listener.nextListener = null; 297 listener.prevListener = null; 298 listener = ll; 299 --_numListeners; 300 } 301 if ((listener = listener.nextListener).tick(t)) { 302 if (listener.prevListener != null) { 303 listener.prevListener.nextListener = listener.nextListener; 304 } 305 if (listener.nextListener != null) { 306 listener.nextListener.prevListener = listener.prevListener; 307 } 308 if (listener == _first) { 309 _first = listener.nextListener; 310 } 311 if (listener == _last) { 312 _last = listener.prevListener; 281 313 } 282 314 ll = listener.prevListener; … … 292 324 _first.prevListener = null; 293 325 } 326 else { 327 _last = null; 328 } 294 329 l.nextListener = _tickerListenerPaddings[n + 1] as TickerListener; 295 330 } as3/BetweenAS3/trunk/tests/fp10/org/libspark/betweenas3/tickers/EnterFrameTickerTest.as
r3077 r3422 201 201 assertEquals(2, l8.c); 202 202 } 203 204 test function iterationOrder():void 205 { 206 var l01:LoggingTickerListener = new LoggingTickerListener('A', 1); 207 var l02:LoggingTickerListener = new LoggingTickerListener('B', 2); 208 var l03:LoggingTickerListener = new LoggingTickerListener('C', 3); 209 var l04:LoggingTickerListener = new LoggingTickerListener('D', 4); 210 var l05:LoggingTickerListener = new LoggingTickerListener('E', 5); 211 var l06:LoggingTickerListener = new LoggingTickerListener('F', 6); 212 var l07:LoggingTickerListener = new LoggingTickerListener('G', 7); 213 var l08:LoggingTickerListener = new LoggingTickerListener('H', 8); 214 215 var ticker:EnterFrameTicker = new EnterFrameTicker(); 216 217 ticker.addTickerListener(l01); 218 ticker.addTickerListener(l02); 219 ticker.addTickerListener(l03); 220 ticker.addTickerListener(l04); 221 ticker.addTickerListener(l05); 222 ticker.addTickerListener(l06); 223 ticker.addTickerListener(l07); 224 ticker.addTickerListener(l08); 225 226 Static.log = ''; 227 228 for (var i:uint = 1; i < 10; ++i) { 229 ticker.update(null); 230 } 231 232 var log:String = ''; 233 log += 'A1 B1 C1 D1 E1 F1 G1 H1 '; 234 log += 'B2 C2 D2 E2 F2 G2 H2 '; 235 log += 'C3 D3 E3 F3 G3 H3 '; 236 log += 'D4 E4 F4 G4 H4 '; 237 log += 'E5 F5 G5 H5 '; 238 log += 'F6 G6 H6 '; 239 log += 'G7 H7 '; 240 log += 'H8 '; 241 242 assertEquals(log, Static.log); 243 } 244 245 test function insertAfterDelete():void 246 { 247 var ticker:EnterFrameTicker = new EnterFrameTicker(); 248 249 var l1:MockTickerListener = new MockTickerListener(1); 250 var l2:MockTickerListener = new MockTickerListener(1); 251 var l3:AddingListenerTickerListener = new AddingListenerTickerListener(2, ticker, l1, 1); 252 253 ticker.addTickerListener(l3); 254 ticker.addTickerListener(l2); 255 256 ticker.update(null); 257 ticker.update(null); 258 ticker.update(null); 259 260 assertEquals(1, l1.c); 261 assertEquals(1, l2.c); 262 assertEquals(2, l3.c); 263 } 203 264 } 204 265 } … … 207 268 import org.libspark.betweenas3.core.ticker.ITicker; 208 269 270 internal class Static 271 { 272 public static var log:String; 273 } 274 209 275 internal class MockTickerListener extends TickerListener 210 276 { … … 226 292 internal class AddingListenerTickerListener extends MockTickerListener 227 293 { 228 public function AddingListenerTickerListener(n:uint, ticker:ITicker, listener:TickerListener )294 public function AddingListenerTickerListener(n:uint, ticker:ITicker, listener:TickerListener, n2:uint = 0) 229 295 { 230 296 super(n); … … 232 298 this.ticker = ticker; 233 299 this.listener = listener; 300 this.n2 = n2; 234 301 } 235 302 236 303 public var ticker:ITicker; 237 304 public var listener:TickerListener; 305 public var n2:uint; 238 306 239 307 override public function tick(time:Number):Boolean 240 308 { 241 if (c == 0) {309 if (c == n2) { 242 310 ticker.addTickerListener(listener); 243 311 } … … 245 313 } 246 314 } 315 316 internal class LoggingTickerListener extends TickerListener 317 { 318 public function LoggingTickerListener(name:String, n:uint) 319 { 320 this.name = name; 321 this.n = n; 322 this.c = 0; 323 } 324 325 public var name:String; 326 public var n:uint; 327 public var c:uint; 328 329 override public function tick(time:Number):Boolean 330 { 331 ++c; 332 333 Static.log += name + c + ' '; 334 335 return c == n; 336 } 337 } as3/BetweenAS3/trunk/tests/fp9/org/libspark/betweenas3/tickers/EnterFrameTickerTest.as
r3078 r3422 201 201 assertEquals(2, l8.c); 202 202 } 203 204 test function iterationOrder():void 205 { 206 var l01:LoggingTickerListener = new LoggingTickerListener('A', 1); 207 var l02:LoggingTickerListener = new LoggingTickerListener('B', 2); 208 var l03:LoggingTickerListener = new LoggingTickerListener('C', 3); 209 var l04:LoggingTickerListener = new LoggingTickerListener('D', 4); 210 var l05:LoggingTickerListener = new LoggingTickerListener('E', 5); 211 var l06:LoggingTickerListener = new LoggingTickerListener('F', 6); 212 var l07:LoggingTickerListener = new LoggingTickerListener('G', 7); 213 var l08:LoggingTickerListener = new LoggingTickerListener('H', 8); 214 215 var ticker:EnterFrameTicker = new EnterFrameTicker(); 216 217 ticker.addTickerListener(l01); 218 ticker.addTickerListener(l02); 219 ticker.addTickerListener(l03); 220 ticker.addTickerListener(l04); 221 ticker.addTickerListener(l05); 222 ticker.addTickerListener(l06); 223 ticker.addTickerListener(l07); 224 ticker.addTickerListener(l08); 225 226 Static.log = ''; 227 228 for (var i:uint = 1; i < 10; ++i) { 229 ticker.update(null); 230 } 231 232 var log:String = ''; 233 log += 'A1 B1 C1 D1 E1 F1 G1 H1 '; 234 log += 'B2 C2 D2 E2 F2 G2 H2 '; 235 log += 'C3 D3 E3 F3 G3 H3 '; 236 log += 'D4 E4 F4 G4 H4 '; 237 log += 'E5 F5 G5 H5 '; 238 log += 'F6 G6 H6 '; 239 log += 'G7 H7 '; 240 log += 'H8 '; 241 242 assertEquals(log, Static.log); 243 } 244 245 test function insertAfterDelete():void 246 { 247 var ticker:EnterFrameTicker = new EnterFrameTicker(); 248 249 var l1:MockTickerListener = new MockTickerListener(1); 250 var l2:MockTickerListener = new MockTickerListener(1); 251 var l3:AddingListenerTickerListener = new AddingListenerTickerListener(2, ticker, l1, 1); 252 253 ticker.addTickerListener(l3); 254 ticker.addTickerListener(l2); 255 256 ticker.update(null); 257 ticker.update(null); 258 ticker.update(null); 259 260 assertEquals(1, l1.c); 261 assertEquals(1, l2.c); 262 assertEquals(2, l3.c); 263 } 203 264 } 204 265 } … … 207 268 import org.libspark.betweenas3.core.ticker.ITicker; 208 269 270 internal class Static 271 { 272 public static var log:String; 273 } 274 209 275 internal class MockTickerListener extends TickerListener 210 276 { … … 226 292 internal class AddingListenerTickerListener extends MockTickerListener 227 293 { 228 public function AddingListenerTickerListener(n:uint, ticker:ITicker, listener:TickerListener )294 public function AddingListenerTickerListener(n:uint, ticker:ITicker, listener:TickerListener, n2:uint = 0) 229 295 { 230 296 super(n); … … 232 298 this.ticker = ticker; 233 299 this.listener = listener; 300 this.n2 = n2; 234 301 } 235 302 236 303 public var ticker:ITicker; 237 304 public var listener:TickerListener; 305 public var n2:uint; 238 306 239 307 override public function tick(time:Number):Boolean 240 308 { 241 if (c == 0) {309 if (c == n2) { 242 310 ticker.addTickerListener(listener); 243 311 } … … 245 313 } 246 314 } 315 316 internal class LoggingTickerListener extends TickerListener 317 { 318 public function LoggingTickerListener(name:String, n:uint) 319 { 320 this.name = name; 321 this.n = n; 322 this.c = 0; 323 } 324 325 public var name:String; 326 public var n:uint; 327 public var c:uint; 328 329 override public function tick(time:Number):Boolean 330 { 331 ++c; 332 333 Static.log += name + c + ' '; 334 335 return c == n; 336 } 337 }

