From 3d10dbbb167c89638f3bea6c267de8763274d30c Mon Sep 17 00:00:00 2001 From: itozyun Date: Fri, 8 Jan 2016 11:39:39 +0900 Subject: [PATCH] Version 0.6.206, update X.Node.Anime, bug fixes X.HTMLAudio@getActualCurrentTime. --- 0.6.x/js/01_core/02_XUA.js | 9 +++++---- 0.6.x/js/02_dom/06_XNodeCSS.js | 6 +++--- 0.6.x/js/02_dom/10_XNodeAnime.js | 30 +++++++++++++++--------------- 0.6.x/js/07_audio/02_XHTMLAudio.js | 3 ++- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/0.6.x/js/01_core/02_XUA.js b/0.6.x/js/01_core/02_XUA.js index 896be7e..0437c72 100644 --- a/0.6.x/js/01_core/02_XUA.js +++ b/0.6.x/js/01_core/02_XUA.js @@ -30,7 +30,7 @@ var X_UA = X[ 'UA' ] = {}, if( sys.indexOf( 'iP' ) === 0 ){ - v = dua.split( 'OS ' )[ 1 ].split( '_' ); + v = dav.split( 'OS ' )[ 1 ].split( '_' ); i = window.devicePixelRatio === 1; /** * @alias X.UA.iOSMajor @@ -51,7 +51,7 @@ var X_UA = X[ 'UA' ] = {}, * @alias X.UA.iOS * @type {number} */ - X_UA[ 'iOS' ] = X_UA[ 'iOSMajor' ] + X_UA[ 'iOSMinor' ] / 10; + X_UA[ 'iOS' ] = X_UA[ 'iOSMajor' ] + X_UA[ 'iOSMinor' ] / 10; // 4:3 model v = screen.width === screen.height * 1.5 || screen.width * 1.5 === screen.height; @@ -123,6 +123,7 @@ var X_UA = X[ 'UA' ] = {}, }; //alert( 'iPod touch ' + ( X_UA[ 'iPod_3' ] ? '3以下' : X_UA[ 'iPod_4' ] ? '4以下' : '5以上' ) ); }; + // TODO iPhone Simulator console.log( '>> iOS : ' + X_UA[ 'iOS' ] ); } else @@ -458,7 +459,7 @@ var X_UA = X[ 'UA' ] = {}, X_UA[ 'MacIE' ] = true; }; - if( 0 < dua.toLowerCase().indexOf( 'iemobile' ) || X_UA[ 'WinCE' ] ){ + if( 0 < dua.indexOf( 'IEMobile' ) || X_UA[ 'WinCE' ] ){ /** * @alias X.UA.IEMobile * @type {boolean} @@ -466,7 +467,7 @@ var X_UA = X[ 'UA' ] = {}, X_UA[ 'IEMobile' ] = true; }; - if( 0 < dua.toLowerCase().indexOf( 'windows phone' ) || 0 < dav.indexOf( 'ZuneWP' ) ){ + if( 0 < dua.indexOf( 'Windows Phone' ) || 0 < dav.indexOf( 'ZuneWP' ) ){ /** * @alias X.UA.WinPhone * @type {boolean} diff --git a/0.6.x/js/02_dom/06_XNodeCSS.js b/0.6.x/js/02_dom/06_XNodeCSS.js index 2463840..aa34a08 100644 --- a/0.6.x/js/02_dom/06_XNodeCSS.js +++ b/0.6.x/js/02_dom/06_XNodeCSS.js @@ -489,14 +489,14 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){ + params[ 1 ]; //console.log( ow + ' ' + oh ) - elm.style.left = dx + 'px'; - elm.style.top = dy + 'px'; + elm.style[ params[ 7 ] ] = dx + 'px'; // left or right + elm.style[ params[ 8 ] ] = dy + 'px'; // top or bottom //フィルターで回転と拡大縮小を加えます。 return 'progid:DXImageTransform.Microsoft.Matrix(' + // 'Dx=' + dx + //',Dy=' + dy + - 'M11=' + m11 + + 'M11=' + m11 + ',M12=' + m12 + ',M21=' + m21 + ',M22=' + m22 + diff --git a/0.6.x/js/02_dom/10_XNodeAnime.js b/0.6.x/js/02_dom/10_XNodeAnime.js index 3464ffb..e856bd8 100644 --- a/0.6.x/js/02_dom/10_XNodeAnime.js +++ b/0.6.x/js/02_dom/10_XNodeAnime.js @@ -7,14 +7,12 @@ var X_NodeAnime_QUEUE = [], X_NodeAnime_hasTransform = !!X_Node_CSS_VENDER_PREFIX[ 'transform' ], - X_NodeAnime_hasDXTransform = 5.5 <= X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 && X_UA[ 'ActiveX' ], + X_NodeAnime_hasDXTransform = 5.5 <= X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 && X_UA[ 'ActiveX' ], // IEHost が 11 の場合不可 /* Opera mobile で translateZ(0) が有効だと XY が 0 0 になる */ /* GPUレイヤーにいる間に要素のコンテンツを変更をすると transitionend が動かなくなるっぽい Mac safari と firefox */ X_NodeAnime_translateZ = X_Node_CSS_VENDER_PREFIX[ 'perspective' ] && !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] ? ' translateZ(0)' : '', - X_NodeAnime_transitionProps = X_NodeAnime_hasTransform ? X_Node_CSS_VENDER_PREFIX[ 'transform' ] : 'left,top'; - /* * phase: * 0: アニメーション無 @@ -27,7 +25,7 @@ var X_NodeAnime_QUEUE = [], * 7: アニメーション中 */ -var X_NODE_ANIME_RESET = 1, + X_NODE_ANIME_RESET = 1, X_NODE_ANIME_STAY_GPU = 2, X_NodeAnime_DEFAULT = { @@ -47,7 +45,7 @@ var X_NODE_ANIME_RESET = 1, scrollY : NaN, fromScrollY : NaN, toScrollY : NaN //, //doScroll : false//, //duration : 0 - //phase, lazyRelease, easing, follower, releaseNow, inited, progress doScroll, fallbackKind + //phase, lazyRelease, easing, follower, releaseNow, inited, progress, fallback // fromTime, toTime }; @@ -144,6 +142,8 @@ function X_Node_animate( obj ){ obj.transform = ( X_Type_isFinite( obj.x ) || X_Type_isFinite( obj.y ) || obj.lazyRelease ) && X_NodeAnime_hasTransform; obj.doScroll = 0 <= obj.toScrollX || 0 <= obj.toScrollY; obj.fallback = 0; + obj.altX = fallback & 8 ? 'right' : 'left'; + obj.altY = fallback & 16 ? 'bottom' : 'top'; // scale if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){ @@ -152,8 +152,8 @@ function X_Node_animate( obj ){ if( X_NodeAnime_hasTransform ){ obj.transform = true; } else - if( X_NodeAnime_hasDXTransform && ( fallback & 16 ) ){ // DX Transform - obj.fallback = 16; + if( X_NodeAnime_hasDXTransform && ( fallback & 32 ) ){ // DX Transform + obj.fallback = 32; } else if( ( fallback & 4 ) && sameRate ){ // zoom obj.fallback = 4; @@ -171,8 +171,8 @@ function X_Node_animate( obj ){ if( X_NodeAnime_hasTransform ){ obj.transform = true; } else - if( X_NodeAnime_hasDXTransform && ( fallback & 16 ) ){ // DX Transform - obj.fallback = 16; + if( X_NodeAnime_hasDXTransform && ( fallback & 32 ) ){ // DX Transform + obj.fallback = 32; }; }; @@ -549,11 +549,11 @@ function X_NodeAnime_updatePosition( xnode, obj, ratio, useGPU ){ }; }; } else - if( obj.fallback === 16 ){ - xnode[ 'css' ]( 'dxtransform', [ x | 0, y | 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY ] ); + if( obj.fallback === 32 ){ + xnode[ 'css' ]( 'dxtransform', [ x | 0, y | 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY, obj.altX, obj.altY ] ); } else { - x === x && xnode[ 'css' ]( 'left', ( x | 0 ) + 'px' ); - y === y && xnode[ 'css' ]( 'top', ( y | 0 ) + 'px' ); + x === x && xnode[ 'css' ]( obj.altX, ( x | 0 ) + 'px' ); + y === y && xnode[ 'css' ]( obj.altY, ( y | 0 ) + 'px' ); switch( obj.fallback ){ case 4 : @@ -570,8 +570,8 @@ function X_NodeAnime_updatePosition( xnode, obj, ratio, useGPU ){ if( obj.doScroll && xnode[ '_rawObject' ] ){ console.log( 'ok ' + ratio ); - xnode[ '_rawObject' ].scrollLeft = obj.scrollX | 0; - xnode[ '_rawObject' ].scrollTop = obj.scrollY | 0; + xnode[ '_rawObject' ].scrollLeft = obj.scrollX | 0; + xnode[ '_rawObject' ].scrollTop = obj.scrollY | 0; //X_Node_reserveUpdate(); }; diff --git a/0.6.x/js/07_audio/02_XHTMLAudio.js b/0.6.x/js/07_audio/02_XHTMLAudio.js index f9b82f5..80723b9 100644 --- a/0.6.x/js/07_audio/02_XHTMLAudio.js +++ b/0.6.x/js/07_audio/02_XHTMLAudio.js @@ -330,7 +330,7 @@ if( X_Audio_constructor ){ break; case 'seeked' : - if( this._seekingFixON ) this._seekingFixON = false; + if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = false; break; case 'waiting' : // 次のフレームが利用不可のため再生を停止したが、そのフレームがやがて利用可能になると想定している場合に発生 @@ -507,6 +507,7 @@ if( X_Audio_constructor ){ getActualCurrentTime : function(){ return ( X_HTMLAudio_currentTimeFix ? X_Timer_now() - this._currentFixStart + this._currentFixBegin : + this._seekingFixON ? this._lastCurrentTime * 1000 : this[ '_rawObject' ].currentTime * 1000 | 0 ); }, /* -- 2.11.0