* TODO : rotate, ActiveX transform -> 位置補正のために size 情報が必要なので、commitUpdate 後に計算して適用\r
* TODO : matrix\r
* TODO : skew\r
+ * TODO : filter\r
+ * TODO 前回位置からの継続\r
*/\r
Node.prototype.animate = function( start, dest, duration, easing, wait ){\r
var isNew = !this._anime,\r
transitionDelay : '0s' // 0.001 にすると transitionend のタイミングが狂う、、、\r
});\r
\r
+ console.log( '開始位置 ' + phase );\r
X_Node_Anime_updatePosition( xnode, obj.startX, obj.startY, obj.startA, phase === 8 );\r
\r
xnode.dispatch( { type : X.Event.ANIME_START, gpu : phase === 8 } );\r
xnode.listenOnce( 'transitionend', X_Node_Anime_onTransitionEnd );\r
\r
xnode.css({\r
- transitionProperty : X_Node_Anime_transitionProps + ',opacity,width,height', // X_Node_Anime_readyTransitionに移動??\r
+ transitionProperty : X_Node_Anime_transitionProps + ',opacity,width,height',\r
transitionDuration : obj.duration + 'ms'\r
});\r
\r
+ console.log( '修了位置 ' + phase );\r
X_Node_Anime_updatePosition( xnode, obj.destX, obj.destY, obj.destA, obj.gpuParent );\r
- obj.phase = 2; \r
+ obj.phase = 2;\r
break;\r
};\r
console.log( 'duration = 0 の場合、アニメーションの解除' );\r
\r
case 10 :\r
// アニメーションは停止・GPUレイヤーは解除していない(再アニメーションに備えて待機)\r
- X_Node_Anime_clearTransition( xnode ); // TODO X_Node_Anime_releaseGPULayer に移動?\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
console.log( '_anime無' );\r
return;\r
};\r
+ X_Node_Anime_clearTransition( this );\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
// 開始座標のセット(新規のみ)\r
// アニメーション指定のセット(または解除)(対象のみ)\r
// 目標座標のセット\r
- //xnode.unlisten( 'transitionend', X_Node_Anime_onTransitionEnd );\r
+ xnode.unlisten( 'transitionend', X_Node_Anime_onTransitionEnd );\r
\r
xnode.css({\r
//willChange : '',\r
});\r
};\r
\r
- if( useGPU ){\r
- if( xnode._flags & X_Node_State.GPU_RELEASE_RESERVED ){\r
- xnode._flags &= X_Node_BitMask_RESET_GPU;\r
- xnode._flags |= X_Node_State.GPU_NOW;\r
- } else\r
- if( xnode._flags & X_Node_State.GPU_NOW === 0 ){\r
- xnode._flags &= X_Node_BitMask_RESET_GPU;\r
- xnode._flags |= X_Node_State.GPU_RESERVED; \r
- };\r
- } else {\r
- if( xnode._flags & X_Node_State.GPU_NOW ){\r
- xnode._flags &= X_Node_BitMask_RESET_GPU;\r
- xnode._flags |= X_Node_State.GPU_RELEASE_RESERVED; \r
- } else\r
- if( xnode._flags & X_Node_State.GPU_RESERVED ){\r
- xnode._flags &= X_Node_BitMask_RESET_GPU;\r
- };\r
+ if( X_Node_Anime_translateZ ){\r
+ if( useGPU ){\r
+ if( xnode._flags & X_Node_State.GPU_RELEASE_RESERVED ){\r
+ xnode._flags &= X_Node_BitMask_RESET_GPU;\r
+ xnode._flags |= X_Node_State.GPU_NOW;\r
+ } else\r
+ if( xnode._flags & X_Node_State.GPU_NOW ){\r
+ } else {\r
+ xnode._flags &= X_Node_BitMask_RESET_GPU;\r
+ xnode._flags |= X_Node_State.GPU_RESERVED;\r
+ };\r
+ } else {\r
+ if( xnode._flags & X_Node_State.GPU_NOW ){\r
+ xnode._flags &= X_Node_BitMask_RESET_GPU;\r
+ xnode._flags |= X_Node_State.GPU_RELEASE_RESERVED; \r
+ } else\r
+ if( xnode._flags & X_Node_State.GPU_RESERVED ){\r
+ xnode._flags &= X_Node_BitMask_RESET_GPU;\r
+ };\r
+ }; \r
};\r
-\r
};\r
\r
function X_Node_Anime_updateAnimationsNoTransition(){\r