X_Node_Anime_transitionProps = X_Node_Anime_hasTransform ? X_Node_CSS_VENDER_PREFIX[ 'transform' ] : 'left,top',\r
// transitionEnd イベント中に要素の更新( X_Node_startUpdate() )ができるか?\r
// iOS3+4 では可能、iOS6.1.5 で不可。TODO iOS5 及び他の環境で調査。ダメな場合、anime.html が正しく描画されない。\r
- X_Node_updateOnTransitionEnd = X_UA[ 'iOS' ] < 6;\r
+ X_Node_updateOnTransitionEnd = false; //X_UA[ 'iOS' ] < 6;\r
\r
// gpu化だけ transformX , willChange\r
// 終了位置の変更\r
* TODO : skew\r
* TODO : filter\r
* TODO 前回位置からの継続\r
+ * TODO scrollLeft, scrollTop\r
*/\r
Node.prototype[ 'animate' ] = function( start, dest, duration, easing, wait ){\r
var isNew = !this[ '_anime' ],\r
obj.phase = obj.gpuParent ? 10 : 4;\r
// このタイミングで animation 関連の css を削除したところ(X_Node_Anime_clearTransition)、iOS3、4 で再描画忘れが度々起きるように、、、\r
if( !obj.gpuParent ) X_Node_Anime_clearTransition( xnode );\r
- xnode[ 'dispatch' ]( { type : X_EVENT_ANIME_END, 'gpu' : obj.gpuParent } );\r
+ //xnode[ 'dispatch' ]( { type : X_EVENT_ANIME_END, 'gpu' : obj.gpuParent } );\r
break;\r
\r
case 4 :\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
+ xnode[ 'asyncDispatch' ]( time, { type : X_EVENT_ANIME_END, 'gpu' : obj.gpuParent } );\r
} else {\r
current = X_Node_Anime_getComputedPosition( xnode );\r
obj.startX = current.x;\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
+ //obj.gpuTimerID && X_Timer_remove( obj.gpuTimerID );\r
+ //delete obj.gpuTimerID;\r
X_ViewPort[ 'listenOnce' ]( X_EVENT_AFTER_UPDATE, xnode, X_Node_Anime_gpuReleased );\r
return true;\r
\r
};\r
\r
function X_Node_Anime_onTransitionEnd( e ){\r
- // console.log( 'アニメ終了[onTransitionEnd] ' + ( this[ '_anime' ] && this[ '_anime' ].phase ) );\r
+ console.log( '[TransitionEnd] ' + ( this[ '_anime' ] && this[ '_anime' ].phase ) );\r
\r
if( !this[ '_anime' ] || this[ '_anime' ].phase !== 2 ){\r
// ここで return してしまうと、view の更新イベント待ちの場合、アニメが止まる\r
this[ 'dispatch' ]( { type : X_EVENT_ANIME_END, 'gpu' : this[ '_anime' ].gpuParent } );\r
X_Node_Anime_onTransition = false;\r
\r
+ X_Node_Anime_clearTransition( this ); // iOS 大丈夫??\r
+ \r
X_Node_Anime_needsDetection = true;\r
// iOS は transitionend 内の 更新でアニメーション可能 iOS3, iOS4 で確認 \r
// win+Gecko は不可\r
};\r
\r
function X_Node_Anime_updatePosition( xnode, x, y, opacity, useGPU ){\r
- // console.log( 'updatePosition y:' + y + ' gpu:' + !!useGPU );\r
+ console.log( 'updatePosition x:' + x + ' gpu:' + !!useGPU );\r
if( X_Node_Anime_hasTransform ){\r
xnode[ 'css' ]({\r
transform : 'translate(' + ( x | 0 ) + 'px,' + ( y | 0 ) + 'px)' + ( useGPU ? X_Node_Anime_translateZ : '' ),\r