OSDN Git Service

Version 0.6.208, bug fixes.
authoritozyun <itozyun@user.sourceforge.jp>
Fri, 29 Jan 2016 02:22:57 +0000 (11:22 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Fri, 29 Jan 2016 02:22:57 +0000 (11:22 +0900)
0.6.x/index.html
0.6.x/js/01_core/02_XUA.js
0.6.x/js/01_core/13_XClass.js
0.6.x/js/05_util/04_XXML.js
0.6.x/js/05_util/06_XWindow.js
0.6.x/js/07_audio/01_XWebAudio.js
0.6.x/js/07_audio/02_XHTMLAudio.js

index 849837e..b403e13 100644 (file)
@@ -10,7 +10,7 @@
 <meta http-equiv="imagetoolbar" content="no">\r
 <meta name="format-detection" content="telephone=no">\r
 <meta name="apple-mobile-web-app-capable" content="yes">\r
-<meta name="viewport" id="dynamic-viewport" content="width=device-width,target-densitydpi=device-dpi,initial-scale=1,user-scalable=0,maximum-scale=1,minimum-scale=1">\r
+<meta name="viewport" id="dynamic-viewport" content="width=device-width,target-densitydpi=medium-dpi,initial-scale=1,user-scalable=0,maximum-scale=1,minimum-scale=1">\r
 <link rel="stylesheet" type="text/css" media="all" href="css/xui.css">\r
 \r
 <script type="text/javascript" src="js/import.js"></script>\r
index 0437c72..f614472 100644 (file)
@@ -55,75 +55,78 @@ var X_UA = X[ 'UA' ] = {},
 \r
                // 4:3 model\r
                v = screen.width === screen.height * 1.5 || screen.width * 1.5 === screen.height;\r
-               \r
-               if( sys === 'iPhone' ){\r
-                       /**\r
-                        * @alias X.UA.iPhone\r
-                        * @type {boolean}\r
-                        */\r
-                       X_UA[ 'iPhone' ]  = true;\r
-                       if( v ){\r
+\r
+               switch( sys ){\r
+                       case 'iPhone' :\r
+                       case 'iPhone Simulator' :\r
                                /**\r
-                                * iPhone4s以下\r
-                                * @alias X.UA.iPhone_4s\r
+                                * @alias X.UA.iPhone\r
                                 * @type {boolean}\r
                                 */\r
-                               X_UA[ 'iPhone_4s' ]  = true;\r
-                               \r
-                               if( i ){\r
+                               X_UA[ 'iPhone' ]  = true;\r
+                               if( v ){\r
                                        /**\r
-                                        * iPhone3GS以下\r
-                                        * @alias X.UA.iPhone_3GS\r
+                                        * iPhone4s以下\r
+                                        * @alias X.UA.iPhone_4s\r
                                         * @type {boolean}\r
                                         */\r
-                                       X_UA[ 'iPhone_3GS' ]  = true;\r
-                               };                              \r
-                       };\r
-\r
-                       //alert( 'iPhone ' + ( X_UA[ 'iPhone_3GS' ]  ? '3GS以下' : X_UA[ 'iPhone_4s' ]  ? '4s以下' : '5以上' ) );\r
-               };\r
-               if( sys === 'iPad' ){\r
-                       /**\r
-                        * @alias X.UA.iPad\r
-                        * @type {boolean}\r
-                        */\r
-                       X_UA[ 'iPad' ]    = true;\r
-                       if( i ){\r
+                                       X_UA[ 'iPhone_4s' ]  = true;\r
+                                       \r
+                                       if( i ){\r
+                                               /**\r
+                                                * iPhone3GS以下\r
+                                                * @alias X.UA.iPhone_3GS\r
+                                                * @type {boolean}\r
+                                                */\r
+                                               X_UA[ 'iPhone_3GS' ]  = true;\r
+                                       };                              \r
+                               };\r
+                               break;\r
+                       \r
+                       case 'iPad' :\r
+                       case 'iPad Simulator' :\r
                                /**\r
-                                * iPad2以下または初代iPad mini 以下\r
-                                * @alias X.UA.iPad_2Mini1\r
+                                * @alias X.UA.iPad\r
                                 * @type {boolean}\r
                                 */\r
-                               X_UA[ 'iPad_2Mini1' ]  = true;\r
-                       };\r
-               };\r
-               if( sys === 'iPod' ){\r
-                       /**\r
-                        * @alias X.UA.iPod\r
-                        * @type {boolean}\r
-                        */\r
-                       X_UA[ 'iPod' ]    = true;\r
-\r
-                       if( v ){\r
+                               X_UA[ 'iPad' ]    = true;\r
+                               if( i ){\r
+                                       /**\r
+                                        * iPad2以下または初代iPad mini 以下\r
+                                        * @alias X.UA.iPad_2Mini1\r
+                                        * @type {boolean}\r
+                                        */\r
+                                       X_UA[ 'iPad_2Mini1' ]  = true;\r
+                               };\r
+                               break;\r
+                       \r
+                       case 'iPod' :\r
+                       case 'iPod Simulator' : // 必要??\r
                                /**\r
-                                * iPod4以下\r
-                                * @alias X.UA.iPod_4\r
+                                * @alias X.UA.iPod\r
                                 * @type {boolean}\r
                                 */\r
-                               X_UA[ 'iPod_4' ]  = true;\r
-                               \r
-                               if( i ){\r
+                               X_UA[ 'iPod' ]    = true;\r
+       \r
+                               if( v ){\r
                                        /**\r
-                                        * iPod3以下\r
-                                        * @alias X.UA.iPod_3\r
+                                        * iPod4以下\r
+                                        * @alias X.UA.iPod_4\r
                                         * @type {boolean}\r
                                         */\r
-                                       X_UA[ 'iPod_3' ]  = true;\r
-                               };                              \r
-                       };\r
-                       //alert( 'iPod touch ' + ( X_UA[ 'iPod_3' ]  ? '3以下' : X_UA[ 'iPod_4' ] ? '4以下' : '5以上' ) );\r
+                                       X_UA[ 'iPod_4' ]  = true;\r
+                                       \r
+                                       if( i ){\r
+                                               /**\r
+                                                * iPod3以下\r
+                                                * @alias X.UA.iPod_3\r
+                                                * @type {boolean}\r
+                                                */\r
+                                               X_UA[ 'iPod_3' ]  = true;\r
+                                       };                              \r
+                               };\r
+                               break;\r
                };\r
-               // TODO iPhone Simulator\r
                \r
                console.log( '>> iOS : ' + X_UA[ 'iOS' ]  );\r
        } else\r
@@ -692,16 +695,16 @@ var X_UA = X[ 'UA' ] = {},
                                 */\r
                                X_UA[ 'Safari' ] = v;\r
                        } else\r
-                       if( i <= 528.16 ){\r
-                               X_UA[ 'Safari' ] = i <   73    ? 0.8 :\r
-                                                                  i <   85    ? 0.9 :\r
-                                                                  i <  100    ? 1 :\r
-                                                                  i <  125    ? 1.1 :\r
-                                                                  i <  312    ? 1.2 :\r
-                                                                  i <  412    ? 1.3 :\r
-                                                                  i <= 419.3  ? 2 :\r
-                                                                  i <= 525.13 ? 3 :\r
-                                                                  i <= 525.25 ? 3.1 : 3.2;\r
+                       if( v <= 528.16 ){\r
+                               X_UA[ 'Safari' ] = v <   73    ? 0.8 :\r
+                                                                  v <   85    ? 0.9 :\r
+                                                                  v <  100    ? 1 :\r
+                                                                  v <  125    ? 1.1 :\r
+                                                                  v <  312    ? 1.2 :\r
+                                                                  v <  412    ? 1.3 :\r
+                                                                  v <= 419.3  ? 2 :\r
+                                                                  v <= 525.13 ? 3 :\r
+                                                                  v <= 525.25 ? 3.1 : 3.2;\r
                        };\r
                };      \r
                \r
index a107366..a0b15cc 100644 (file)
@@ -214,7 +214,7 @@ X_Class_CommonMethods =
                        proto  = sClass.prototype,\r
                        i      = X_Class_SUPER_CALLER.indexOf( me ),\r
                        args   = arguments,\r
-                       p, name, t, sFunc, ret;\r
+                       p, name, stack, t, sFunc, ret;\r
 \r
                if( X_Type_isFunction( myFunc ) ){\r
                        for( p in proto ){\r
index 5cc2c64..39859ce 100644 (file)
 X[ 'XML' ] = XMLWrapper;\r
 \r
 /**\r
- * XML 探索用のラッパークラスです\r
+ * XML ツリーを探索して読み出す用のラッパークラスです.XML を操作する機能はありません、あしからず…\r
  * @alias X.XML\r
  * @class XML 探索用のラッパークラスです\r
  * @constructor\r
  * @param {XMLElement}\r
  */\r
 function XMLWrapper( xml ){\r
-       this._rawXML = xml;\r
+       if( xml ){\r
+               this._rawXML = xml;\r
+               this.tagName = xml.tagName;\r
+       };\r
 };\r
 \r
 /**\r
+ * tagName または nodeName\r
+ * @alias X.XML.prototype.tagName\r
+ * @type {string}\r
+ */\r
+XMLWrapper.prototype.tagName     = '';\r
+/**\r
  * ラップした xml の数 常に1または0, XMLList の場合2以上\r
  * @alias X.XML.prototype.length\r
  * @type {Number}\r
index e6da249..286b655 100644 (file)
@@ -68,7 +68,8 @@ var X_Window = X[ 'Util' ][ 'Window' ] = X_EventDispatcher[ 'inherits' ](
                'url' : function( url ){\r
                        var pair = X_Pair_get( this );\r
                        \r
-                       pair && ( pair.location.href = url );\r
+                       pair && ( pair.page.location.href = url );\r
+                       return this;\r
                },\r
 \r
                /**\r
@@ -103,13 +104,13 @@ var X_Window = X[ 'Util' ][ 'Window' ] = X_EventDispatcher[ 'inherits' ](
                },\r
                \r
                /**\r
-                * 別窓にfocusする\r
+                * 別窓にfocusする ..firefox でできない...\r
                 * @return {Window} チェーンメソッド\r
                 */\r
                'focus' : function(){\r
                        var pair = X_Pair_get( this );\r
                        \r
-                       pair && pair[ 'focus' ]();\r
+                       pair && pair.page[ 'focus' ]();\r
                        return this;\r
                }\r
        }\r
index a59f2d2..5e97299 100644 (file)
@@ -90,7 +90,7 @@ var X_WebAudio_context      = // 4s 以下ではない iPad 2G または iPad mi
                                                                //!X_UA[ 'Blink' ] &&
                                                                // Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
                                                                // Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
-                                                               !( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 44 && X_UA[ 'Windows' ] ) &&
+                                                               !( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 45 && X_UA[ 'Windows' ] ) &&
                                                                ( window[ 'AudioContext' ] || window[ 'webkitAudioContext' ] ),
        X_WebAudio_BUFFER_LIST  = [],
        X_WebAudio_need1stTouch = X_UA[ 'iOS' ],
index 80723b9..ac38571 100644 (file)
@@ -328,7 +328,11 @@ if( X_Audio_constructor ){
                                        //case 'ratechange' :    // defaultPlaybackRate属性とplaybackRate属性のどちらかが更新された場合に発生\r
                                        //case 'volumechange' :   // volume属性とmuted属性のどちらかが変化した場合に発生\r
                                                break;\r
-                                       \r
+\r
+                                       case 'seeking' :                //      シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生\r
+                                               eventType = X_EVENT_MEDIA_SEEKING;\r
+                                               if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true;\r
+                                               break;                                  \r
                                        case 'seeked' :\r
                                                if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = false;\r
                                                break;\r
@@ -336,10 +340,6 @@ if( X_Audio_constructor ){
                                        case 'waiting' :                //      次のフレームが利用不可のため再生を停止したが、そのフレームがやがて利用可能になると想定している場合に発生\r
                                                eventType = X_EVENT_MEDIA_WAITING;\r
                                                break;\r
-                                       case 'seeking' :                //      シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生\r
-                                               eventType = X_EVENT_MEDIA_SEEKING;\r
-                                               if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true;\r
-                                               break;\r
                                };\r
                                \r
                                // duration は Infinity, NaN, 0 の場合があるため、これを除外する\r