OSDN Git Service

Version 0.6.206, update X.Node.Anime, bug fixes X.HTMLAudio@getActualCurrentTime.
authoritozyun <itozyun@user.sourceforge.jp>
Fri, 8 Jan 2016 02:39:39 +0000 (11:39 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Fri, 8 Jan 2016 02:39:39 +0000 (11:39 +0900)
0.6.x/js/01_core/02_XUA.js
0.6.x/js/02_dom/06_XNodeCSS.js
0.6.x/js/02_dom/10_XNodeAnime.js
0.6.x/js/07_audio/02_XHTMLAudio.js

index 896be7e..0437c72 100644 (file)
@@ -30,7 +30,7 @@ var X_UA = X[ 'UA' ] = {},
        \r
        if( sys.indexOf( 'iP' ) === 0 ){\r
 \r
-               v = dua.split( 'OS ' )[ 1 ].split( '_' );\r
+               v = dav.split( 'OS ' )[ 1 ].split( '_' );\r
                i = window.devicePixelRatio === 1;\r
                /**\r
                 * @alias X.UA.iOSMajor\r
@@ -51,7 +51,7 @@ var X_UA = X[ 'UA' ] = {},
                 * @alias X.UA.iOS\r
                 * @type {number}\r
                 */\r
-               X_UA[ 'iOS' ]  = X_UA[ 'iOSMajor' ] + X_UA[ 'iOSMinor' ]  / 10;\r
+               X_UA[ 'iOS' ]  = X_UA[ 'iOSMajor' ] + X_UA[ 'iOSMinor' ] / 10;\r
 \r
                // 4:3 model\r
                v = screen.width === screen.height * 1.5 || screen.width * 1.5 === screen.height;\r
@@ -123,6 +123,7 @@ var X_UA = X[ 'UA' ] = {},
                        };\r
                        //alert( 'iPod touch ' + ( X_UA[ 'iPod_3' ]  ? '3以下' : X_UA[ 'iPod_4' ] ? '4以下' : '5以上' ) );\r
                };\r
+               // TODO iPhone Simulator\r
                \r
                console.log( '>> iOS : ' + X_UA[ 'iOS' ]  );\r
        } else\r
@@ -458,7 +459,7 @@ var X_UA = X[ 'UA' ] = {},
                        X_UA[ 'MacIE' ] = true;\r
                };\r
                \r
-               if( 0 < dua.toLowerCase().indexOf( 'iemobile' ) || X_UA[ 'WinCE' ] ){\r
+               if( 0 < dua.indexOf( 'IEMobile' ) || X_UA[ 'WinCE' ] ){\r
                        /**\r
                         * @alias X.UA.IEMobile\r
                         * @type {boolean}\r
@@ -466,7 +467,7 @@ var X_UA = X[ 'UA' ] = {},
                        X_UA[ 'IEMobile' ] = true;\r
                };\r
 \r
-               if( 0 < dua.toLowerCase().indexOf( 'windows phone' ) || 0 < dav.indexOf( 'ZuneWP' ) ){\r
+               if( 0 < dua.indexOf( 'Windows Phone' ) || 0 < dav.indexOf( 'ZuneWP' ) ){\r
                        /**\r
                         * @alias X.UA.WinPhone\r
                         * @type {boolean}\r
index 2463840..aa34a08 100644 (file)
@@ -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 + 
index 3464ffb..e856bd8 100644 (file)
@@ -7,14 +7,12 @@ var X_NodeAnime_QUEUE           = [],
        \r
        X_NodeAnime_hasTransform    = !!X_Node_CSS_VENDER_PREFIX[ 'transform' ],\r
        \r
-       X_NodeAnime_hasDXTransform  = 5.5 <= X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 && X_UA[ 'ActiveX' ],\r
+       X_NodeAnime_hasDXTransform  = 5.5 <= X_UA[ 'IE' ] && X_UA[ 'IE' ] < 9 && X_UA[ 'ActiveX' ], // IEHost が 11 の場合不可\r
        \r
        /* Opera mobile で  translateZ(0) が有効だと XY が 0 0 になる */\r
        /* GPUレイヤーにいる間に要素のコンテンツを変更をすると transitionend が動かなくなるっぽい Mac safari と firefox */\r
        X_NodeAnime_translateZ      = X_Node_CSS_VENDER_PREFIX[ 'perspective' ] && !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] ? ' translateZ(0)' : '',\r
 \r
-       X_NodeAnime_transitionProps = X_NodeAnime_hasTransform ? X_Node_CSS_VENDER_PREFIX[ 'transform' ] : 'left,top';\r
-\r
 /*\r
  * phase:\r
  *  0: アニメーション無\r
@@ -27,7 +25,7 @@ var X_NodeAnime_QUEUE           = [],
  *  7: アニメーション中\r
  */\r
 \r
-var X_NODE_ANIME_RESET = 1,\r
+       X_NODE_ANIME_RESET = 1,\r
        X_NODE_ANIME_STAY_GPU = 2,\r
        \r
        X_NodeAnime_DEFAULT = {\r
@@ -47,7 +45,7 @@ var X_NODE_ANIME_RESET = 1,
                scrollY  : NaN, fromScrollY  : NaN, toScrollY  : NaN //,\r
                //doScroll : false//,\r
                //duration : 0\r
-               //phase, lazyRelease, easing, follower, releaseNow, inited, progress doScroll, fallbackKind\r
+               //phase, lazyRelease, easing, follower, releaseNow, inited, progress, fallback\r
                // fromTime, toTime\r
        };\r
 \r
@@ -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;\r
        obj.doScroll    = 0 <= obj.toScrollX || 0 <= obj.toScrollY;\r
        obj.fallback    = 0;\r
+       obj.altX        = fallback & 8  ? 'right'  : 'left'; \r
+       obj.altY        = fallback & 16 ? 'bottom' : 'top';\r
        \r
        // scale\r
        if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){\r
@@ -152,8 +152,8 @@ function X_Node_animate( obj ){
                if( X_NodeAnime_hasTransform ){\r
                        obj.transform = true;\r
                } else\r
-               if( X_NodeAnime_hasDXTransform && ( fallback & 16 ) ){ // DX Transform\r
-                       obj.fallback = 16;\r
+               if( X_NodeAnime_hasDXTransform && ( fallback & 32 ) ){ // DX Transform\r
+                       obj.fallback = 32;\r
                } else\r
                if( ( fallback & 4 ) && sameRate ){ // zoom\r
                        obj.fallback = 4;\r
@@ -171,8 +171,8 @@ function X_Node_animate( obj ){
                if( X_NodeAnime_hasTransform ){\r
                        obj.transform = true;\r
                } else\r
-               if( X_NodeAnime_hasDXTransform && ( fallback & 16 ) ){ // DX Transform\r
-                       obj.fallback = 16;\r
+               if( X_NodeAnime_hasDXTransform && ( fallback & 32 ) ){ // DX Transform\r
+                       obj.fallback = 32;\r
                };\r
        };\r
 \r
@@ -549,11 +549,11 @@ function X_NodeAnime_updatePosition( xnode, obj, ratio, useGPU ){
                        };              \r
                };              \r
        } else\r
-       if( obj.fallback === 16 ){\r
-               xnode[ 'css' ]( 'dxtransform', [ x | 0, y | 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY ] );\r
+       if( obj.fallback === 32 ){\r
+               xnode[ 'css' ]( 'dxtransform', [ x | 0, y | 0, rotate || 0, skewX || 0, skewY || 0, scaleX, scaleY, obj.altX, obj.altY ] );\r
        } else {\r
-               x === x && xnode[ 'css' ]( 'left', ( x | 0 ) + 'px' );\r
-               y === y && xnode[ 'css' ]( 'top',  ( y | 0 ) + 'px' );\r
+               x === x && xnode[ 'css' ]( obj.altX, ( x | 0 ) + 'px' );\r
+               y === y && xnode[ 'css' ]( obj.altY, ( y | 0 ) + 'px' );\r
                \r
                switch( obj.fallback ){\r
                        case 4 :\r
@@ -570,8 +570,8 @@ function X_NodeAnime_updatePosition( xnode, obj, ratio, useGPU ){
        \r
        if( obj.doScroll && xnode[ '_rawObject' ] ){\r
                console.log( 'ok ' + ratio );\r
-                                       xnode[ '_rawObject' ].scrollLeft = obj.scrollX | 0;\r
-                                       xnode[ '_rawObject' ].scrollTop  = obj.scrollY | 0;\r
+               xnode[ '_rawObject' ].scrollLeft = obj.scrollX | 0;\r
+               xnode[ '_rawObject' ].scrollTop  = obj.scrollY | 0;\r
                //X_Node_reserveUpdate();\r
        };\r
        \r
index f9b82f5..80723b9 100644 (file)
@@ -330,7 +330,7 @@ if( X_Audio_constructor ){
                                                break;\r
                                        \r
                                        case 'seeked' :\r
-                                               if( this._seekingFixON ) this._seekingFixON = false;\r
+                                               if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = false;\r
                                                break;\r
                                        \r
                                        case 'waiting' :                //      次のフレームが利用不可のため再生を停止したが、そのフレームがやがて利用可能になると想定している場合に発生\r
@@ -507,6 +507,7 @@ if( X_Audio_constructor ){
                        getActualCurrentTime : function(){\r
                                return ( X_HTMLAudio_currentTimeFix ?\r
                                                        X_Timer_now() - this._currentFixStart + this._currentFixBegin :\r
+                                                       this._seekingFixON ? this._lastCurrentTime * 1000 :\r
                                                        this[ '_rawObject' ].currentTime * 1000 | 0 );\r
                        },\r
                /*\r