- case 4 :\r
- // アニメーションは停止・GPU=false -> リストから削除\r
- obj.gpuParent = false;\r
- return true;\r
-\r
- case 10 :\r
- // アニメーションは停止・GPUレイヤーは解除していない(再アニメーションに備えて待機)\r
- //X_Node_Anime_clearTransition( xnode ); // TODO X_Node_Anime_releaseGPULayer に移動?\r
- if( !obj.gpuTimerID ){\r
- if( obj.wait ){\r
- obj.gpuTimerID = X_Timer_once( obj.wait, xnode, X_Node_Anime_releaseGPULayer );\r
- } else {\r
- X_Node_Anime_releaseGPULayer.call( xnode );\r
- };\r
- };\r
- return false;\r
- \r
- case 5 :\r
- case 13 :\r
- // 子のGPU解除待ち\r
- ++obj.phase;\r
- break;\r
- \r
- // GPU レイヤーの変更> アニメーションは継続,但し残り時間が短ければ停止\r
- case 6 : \r
- case 14 :\r
- now = X_Timer_now();\r
- time = obj.duration - now + obj.startTime;\r
- if( time < 16 ){\r
- X_Node_Anime_clearTransition( xnode );\r
- X_Node_Anime_updatePosition( xnode, obj.destX, obj.destY, obj.destA, phase === 14 );\r
- obj.phase = phase === 14 ? 10 : 4;\r
- xnode[ 'dispatch' ]( { type : X_EVENT_ANIME_END, 'gpu' : obj.gpuParent } );\r
- } else {\r
- current = X_Node_Anime_getComputedPosition( xnode );\r
- obj.startX = current.x;\r
- obj.startY = current.y;\r
- obj.startA = current.a;\r
- obj.duration = time;\r
- obj.startTime = now;\r
- X_Node_Anime_updatePosition( xnode, current.x, current.y, current.a, phase === 14 );\r
- obj.phase = phase === 14 ? 9 : 1;\r
- };\r
- break;\r
- \r
- case 15 :\r
- // GPU有効で停止(待機)している xnode の解除\r
- //console.log( 'GPU有効で停止(待機)している xnode の解除' + xnode[ '_tag' ] + xnode[ 'getOrder' ]() );\r
- // console.log( 'GPU有効で停止(待機)している xnode のGPU解除' );\r
- X_Node_Anime_clearTransition( xnode );\r
- X_Node_Anime_updatePosition( xnode, obj.destX, obj.destY, obj.destA, false );\r
- obj.gpuTimerID && X_Timer_remove( obj.gpuTimerID );\r
- X_ViewPort[ 'listenOnce' ]( X_EVENT_AFTER_UPDATE, xnode, X_Node_Anime_gpuReleased );\r
- return true;\r
- \r
- case 100 : // stop() : アニメーションを中断して削除\r
- //console.log( 'stop() gpu:' + obj.gpuParent );\r
- // console.log( 'アニメーションを中断して削除' );\r
- current = X_Node_Anime_getComputedPosition( xnode );\r
- \r
- X_Node_Anime_clearTransition( xnode );\r
- X_Node_Anime_updatePosition( xnode, current.x, current.y, current.a, obj.gpuParent );\r
- obj.phase = obj.gpuParent ? 10 : 4;\r
- break;\r
- \r