X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F00_core%2F05_XTimer.js;h=a034a140940992547a316074a209d2b3b4917b05;hb=08e72a61fa7363b2fb04f5bc863df082c3067e47;hp=1e907875530846dd49efdcc81506ebdad97b645c;hpb=27420d0fbdf56a5cda68f5b10de6565de8a5c010;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/00_core/05_XTimer.js b/0.6.x/js/00_core/05_XTimer.js index 1e90787..a034a14 100644 --- a/0.6.x/js/00_core/05_XTimer.js +++ b/0.6.x/js/00_core/05_XTimer.js @@ -26,7 +26,7 @@ X.Timer = { endTime : 0, // iOS next : 0, busy : false, // for Opera7 - + REQ_FRAME_LIST : [], requestID : 0, @@ -56,7 +56,6 @@ X.Timer = { if( r & X.Callback.UN_LISTEN || c === 1 ){ list.splice( i, 1 ); - //f.kill && f.kill(); continue; } else if( 1 < c ) --q.count; @@ -87,24 +86,29 @@ X.Timer = { }; }, + // ページを読み込んでからの時間 _onEnterFrame : function ( time ){ var list = X.Timer.REQ_FRAME_LIST, - i = list.length, - q; - time = time || ( Date.now ? Date.now() : +new Date ); - for( ; i; ){ - q = list[ --i ]; + l = list.length, + i = 0, q; + + time = time || X.getTime(); + // console.log( X.getTime() + ' , ' + time ); + for( ; i < l; ++i ){ + q = list[ i ]; if( q.k ){ q.a = [ time ]; X.Callback._proxyCallback( q ); } else { - q.f( time ); + q( time ); }; - //delete f.uid; - //f.kill && f.kill(); }; - list.length = 0; + + list.splice( 0, l ); + if( list.length ){ + X.Timer.requestID = _enterFrame ? _enterFrame( X.Timer._onEnterFrame ) : X.Timer.add( 0, 1, X.Timer._onEnterFrame ); + }; }, add : function( time, opt_count, args1, args2, args3 ){ @@ -145,10 +149,7 @@ X.Timer = { // fire 中の cancel if( ( q = list[ --i ] ).uid === uid ){ list.splice( i, 1 ); - //f = q.f; - //f.kill && f.kill(); !X.Timer.busy && ( /* q[ INDEX_COUNT ] <= next || */ l === 1 ) && X.Timer._update(); - //q.length = 0; break; }; }; @@ -182,8 +183,6 @@ X.Timer = { // TODO // fire 中の cancel list.splice( i, 1 ); - //delete f.uid; - //f.kill && f.kill(); l === 1 && _cancelFrame( X.Timer.requestID ); break; }; @@ -198,8 +197,6 @@ X.Timer = { if( ( f = list[ --i ] ).uid < uid ) break; if( f.uid === uid ){ list.splice( i, 1 ); - //delete f.uid; - //f.kill && f.kill(); l === 1 && X.Timer.remove( X.Timer.requestID ); break; };