endTime : 0, // iOS\r
next : 0,\r
busy : false, // for Opera7\r
-\r
+ \r
REQ_FRAME_LIST : [],\r
requestID : 0,\r
\r
\r
if( r & X.Callback.UN_LISTEN || c === 1 ){\r
list.splice( i, 1 );\r
- //f.kill && f.kill();\r
continue;\r
} else\r
if( 1 < c ) --q.count;\r
};\r
},\r
\r
+ // ページを読み込んでからの時間\r
_onEnterFrame : function ( time ){\r
var list = X.Timer.REQ_FRAME_LIST,\r
- i = list.length,\r
- q;\r
- time = time || ( Date.now ? Date.now() : +new Date );\r
- for( ; i; ){\r
- q = list[ --i ];\r
+ l = list.length,\r
+ i = 0, q;\r
+\r
+ time = time || X.getTime();\r
+ // console.log( X.getTime() + ' , ' + time );\r
+ for( ; i < l; ++i ){\r
+ q = list[ i ];\r
\r
if( q.k ){\r
q.a = [ time ];\r
X.Callback._proxyCallback( q );\r
} else {\r
- q.f( time );\r
+ q( time );\r
};\r
- //delete f.uid;\r
- //f.kill && f.kill();\r
};\r
- list.length = 0;\r
+\r
+ list.splice( 0, l );\r
+ if( list.length ){\r
+ X.Timer.requestID = _enterFrame ? _enterFrame( X.Timer._onEnterFrame ) : X.Timer.add( 0, 1, X.Timer._onEnterFrame );\r
+ };\r
},\r
\r
add : function( time, opt_count, args1, args2, args3 ){\r
// fire 中の cancel\r
if( ( q = list[ --i ] ).uid === uid ){\r
list.splice( i, 1 );\r
- //f = q.f;\r
- //f.kill && f.kill();\r
!X.Timer.busy && ( /* q[ INDEX_COUNT ] <= next || */ l === 1 ) && X.Timer._update();\r
- //q.length = 0;\r
break;\r
};\r
};\r
// TODO\r
// fire 中の cancel\r
list.splice( i, 1 );\r
- //delete f.uid;\r
- //f.kill && f.kill();\r
l === 1 && _cancelFrame( X.Timer.requestID );\r
break;\r
};\r
if( ( f = list[ --i ] ).uid < uid ) break;\r
if( f.uid === uid ){\r
list.splice( i, 1 );\r
- //delete f.uid;\r
- //f.kill && f.kill();\r
l === 1 && X.Timer.remove( X.Timer.requestID );\r
break;\r
};\r