INDEX_TIME = 0,\r
INDEX_LAST = 1,\r
INDEX_COUNT = 2,\r
- INDEX_CALLBACK = 3;\r
+ INDEX_CALLBACK = 3,\r
INDEX_UID = 4;\r
\r
function loop(){\r
f = queue[ INDEX_CALLBACK ];\r
c = queue[ INDEX_COUNT ];\r
ret = f();\r
- if( ret === false || ret & X.Callback.UN_LISTEN || c === 1 ){\r
+ if( ret & X.Callback.UN_LISTEN || c === 1 ){\r
list.splice( i, 1 );\r
- f.kill();\r
+ f.kill && f.kill();\r
queue.length = 0;\r
continue;\r
} else\r
for( ; i; ){\r
( f = list[ --i ] )( time );\r
delete f.uid;\r
- f.kill();\r
+ f.kill && f.kill();\r
};\r
list.length = 0;\r
};\r
return uid;\r
},\r
once : function( time, args1, args2, args3 ){\r
- X.Timer.add( time, 1, args1, args2, args3 );\r
+ return X.Timer.add( time, 1, args1, args2, args3 );\r
},\r
remove : function( uid ){\r
- var queue,\r
- list = TICKET_LIST,\r
+ var list = TICKET_LIST,\r
i = list.length,\r
- l = i;\r
+ l = i,\r
+ f, q;\r
for( ; i; ){\r
- if( ( queue = list[ --i ] )[ INDEX_UID ] === uid ){\r
+ if( ( q = list[ --i ] )[ INDEX_UID ] === uid ){\r
list.splice( i, 1 );\r
- X.Callback._correct( queue[ INDEX_CALLBACK ] );\r
- ( /* queue[ INDEX_COUNT ] <= next || */ l === 1 ) && update();\r
- queue.length = 0;\r
+ f = q[ INDEX_CALLBACK ];\r
+ f.kill && f.kill();\r
+ ( /* q[ INDEX_COUNT ] <= next || */ l === 1 ) && update();\r
+ q.length = 0;\r
break;\r
};\r
};\r
- }\r
+ },\r
\r
// string only ie4-\r
- ,_loop : X.UA.IE && X.UA.IE < 5 && (function(){\r
- var _loop = loop;\r
+ _loop : X.UA.IE && X.UA.IE < 5 && (function( r ){\r
loop = 'X.Timer._loop()';\r
- return _loop;\r
- })()\r
+ return r;\r
+ })( loop ),\r
\r
- ,requestFrame : function( args1, args2, args3 ){\r
+ requestFrame : function( args1, args2, args3 ){\r
var i = REQUEST_FRAME_LIST.length,\r
f;\r
i === 0 && ( requestID = ( enterFrame ? enterFrame( onEnterFrame ) : X.Timer.add( 16, 1, onEnterFrame ) ) );\r
},\r
cancelFrame : function( uid ){\r
var list = REQUEST_FRAME_LIST,\r
- i = list.length,\r
- l = i,\r
+ l = list.length,\r
+ i = l,\r
f;\r
for( ; i; ){\r
if( ( f = list[ --i ] ).uid < uid ) break;\r
if( f.uid === uid ){\r
list.splice( i, 1 );\r
delete f.uid;\r
- X.Callback._correct( f );\r
- l === 1 && cancelFrame ? cancelFrame( requestID ) : X.Timer.remove( requestID );\r
- break; \r
+ f.kill && f.kill();\r
+ l === 1 && ( cancelFrame ? cancelFrame( requestID ) : X.Timer.remove( requestID ) );\r
+ break;\r
};\r
};\r
}\r