-function X_Node_Anime_onTransitionEnd(){\r
- if( this._anime.phase !== 2 ) return X.Callback.PREVENT_DEFAULT;\r
- this._anime.phase = 3;\r
- X_Node_Anime_needsDetection = true;\r
- X_Node_Anime_reserveUpdate();\r
- console.log( 'トランジション終了' );\r
- return X.Callback.UN_LISTEN | X.Callback.PREVENT_DEFAULT;\r
-};\r
-\r
-function X_Node_Anime_releaseGPULayer(){\r
- var obj = this._anime;\r
- X_Node_Anime_updatePosition( this, obj.destX, obj.destY, obj.destA, false );\r
- X_Node_ANIMATIONS.splice( X_Node_ANIMATIONS.indexOf( this ), 1 );\r
- delete obj.gpuTimerID;\r
- delete this._anime;\r
- console.log( 'GPUレイヤーの破棄' );\r
-};\r
-\r
-function X_Node_Anime_updateTransition( xnode, time, easing ){\r
- // 開始座標のセット(新規のみ)\r
- // アニメーション指定のセット(または解除)(対象のみ)\r
- // 目標座標のセット\r
- if( time ){\r
- xnode.listenOnce( 'transitionend', X_Node_Anime_onTransitionEnd );\r
- } else {\r
- xnode.unlisten( 'transitionend', X_Node_Anime_onTransitionEnd );\r
- };\r
- xnode.css({\r
- transitionProperty : X_Node_Anime_transitionProps + ',opacity',\r
- willChange : time ? X_Node_Anime_transitionProps + ',opacity' : '',\r
- backfaceVisibility : time ? 'hidden' : '',\r
- transitionTimingFunction : time ? easing.style : '',\r
- transitionDelay : '0s',\r
- transitionDuration : time ? time + 'ms' : ''\r
- });\r
+/*\r
+ * アニメーション開始、アニメーション中、強制停止(GPU転送予約)、GPU解除待ち の要素をリストの先頭に\r
+ */\r
+function X_NodeAnime_sortAnimationNode( xnode1, xnode2 ){\r
+ var a = 4 <= xnode1[ '_anime' ].phase,\r
+ b = 4 <= xnode2[ '_anime' ].phase;\r
+ \r
+ if( ( a && b ) && ( !a && !b ) ){ // Chrome のみ\r
+ return xnode1[ '_anime' ].uid - xnode2[ '_anime' ].uid;\r
+ };\r
+ return a ? -1 : 1;\r