OSDN Git Service

Version 0.6.73, move ._rawNode from X.Dom.Event to X.EventDispatcher.
[pettanr/clientJs.git] / 0.6.x / js / 00_core / 05_XTimer.js
index 1e90787..a034a14 100644 (file)
@@ -26,7 +26,7 @@ X.Timer = {
        endTime        : 0, // iOS\r
        next           : 0,\r
        busy           : false, // for Opera7\r
-\r
+       \r
        REQ_FRAME_LIST : [],\r
        requestID      : 0,\r
        \r
@@ -56,7 +56,6 @@ X.Timer = {
                        \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
@@ -87,24 +86,29 @@ X.Timer = {
            };\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
@@ -145,10 +149,7 @@ X.Timer = {
                        // 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
@@ -182,8 +183,6 @@ X.Timer = {
                                        // 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
@@ -198,8 +197,6 @@ X.Timer = {
                                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