From 76ea1040608829b653422cf51b3490801d2ec1fa Mon Sep 17 00:00:00 2001 From: itozyun Date: Fri, 29 Jan 2016 11:22:57 +0900 Subject: [PATCH] Version 0.6.208, bug fixes. --- 0.6.x/index.html | 2 +- 0.6.x/js/01_core/02_XUA.js | 129 +++++++++++++++++++------------------ 0.6.x/js/01_core/13_XClass.js | 2 +- 0.6.x/js/05_util/04_XXML.js | 13 +++- 0.6.x/js/05_util/06_XWindow.js | 7 +- 0.6.x/js/07_audio/01_XWebAudio.js | 2 +- 0.6.x/js/07_audio/02_XHTMLAudio.js | 10 +-- 7 files changed, 89 insertions(+), 76 deletions(-) diff --git a/0.6.x/index.html b/0.6.x/index.html index 849837e..b403e13 100644 --- a/0.6.x/index.html +++ b/0.6.x/index.html @@ -10,7 +10,7 @@ - + diff --git a/0.6.x/js/01_core/02_XUA.js b/0.6.x/js/01_core/02_XUA.js index 0437c72..f614472 100644 --- a/0.6.x/js/01_core/02_XUA.js +++ b/0.6.x/js/01_core/02_XUA.js @@ -55,75 +55,78 @@ var X_UA = X[ 'UA' ] = {}, // 4:3 model v = screen.width === screen.height * 1.5 || screen.width * 1.5 === screen.height; - - if( sys === 'iPhone' ){ - /** - * @alias X.UA.iPhone - * @type {boolean} - */ - X_UA[ 'iPhone' ] = true; - if( v ){ + + switch( sys ){ + case 'iPhone' : + case 'iPhone Simulator' : /** - * iPhone4s以下 - * @alias X.UA.iPhone_4s + * @alias X.UA.iPhone * @type {boolean} */ - X_UA[ 'iPhone_4s' ] = true; - - if( i ){ + X_UA[ 'iPhone' ] = true; + if( v ){ /** - * iPhone3GS以下 - * @alias X.UA.iPhone_3GS + * iPhone4s以下 + * @alias X.UA.iPhone_4s * @type {boolean} */ - X_UA[ 'iPhone_3GS' ] = true; - }; - }; - - //alert( 'iPhone ' + ( X_UA[ 'iPhone_3GS' ] ? '3GS以下' : X_UA[ 'iPhone_4s' ] ? '4s以下' : '5以上' ) ); - }; - if( sys === 'iPad' ){ - /** - * @alias X.UA.iPad - * @type {boolean} - */ - X_UA[ 'iPad' ] = true; - if( i ){ + X_UA[ 'iPhone_4s' ] = true; + + if( i ){ + /** + * iPhone3GS以下 + * @alias X.UA.iPhone_3GS + * @type {boolean} + */ + X_UA[ 'iPhone_3GS' ] = true; + }; + }; + break; + + case 'iPad' : + case 'iPad Simulator' : /** - * iPad2以下または初代iPad mini 以下 - * @alias X.UA.iPad_2Mini1 + * @alias X.UA.iPad * @type {boolean} */ - X_UA[ 'iPad_2Mini1' ] = true; - }; - }; - if( sys === 'iPod' ){ - /** - * @alias X.UA.iPod - * @type {boolean} - */ - X_UA[ 'iPod' ] = true; - - if( v ){ + X_UA[ 'iPad' ] = true; + if( i ){ + /** + * iPad2以下または初代iPad mini 以下 + * @alias X.UA.iPad_2Mini1 + * @type {boolean} + */ + X_UA[ 'iPad_2Mini1' ] = true; + }; + break; + + case 'iPod' : + case 'iPod Simulator' : // 必要?? /** - * iPod4以下 - * @alias X.UA.iPod_4 + * @alias X.UA.iPod * @type {boolean} */ - X_UA[ 'iPod_4' ] = true; - - if( i ){ + X_UA[ 'iPod' ] = true; + + if( v ){ /** - * iPod3以下 - * @alias X.UA.iPod_3 + * iPod4以下 + * @alias X.UA.iPod_4 * @type {boolean} */ - X_UA[ 'iPod_3' ] = true; - }; - }; - //alert( 'iPod touch ' + ( X_UA[ 'iPod_3' ] ? '3以下' : X_UA[ 'iPod_4' ] ? '4以下' : '5以上' ) ); + X_UA[ 'iPod_4' ] = true; + + if( i ){ + /** + * iPod3以下 + * @alias X.UA.iPod_3 + * @type {boolean} + */ + X_UA[ 'iPod_3' ] = true; + }; + }; + break; }; - // TODO iPhone Simulator console.log( '>> iOS : ' + X_UA[ 'iOS' ] ); } else @@ -692,16 +695,16 @@ var X_UA = X[ 'UA' ] = {}, */ X_UA[ 'Safari' ] = v; } else - if( i <= 528.16 ){ - X_UA[ 'Safari' ] = i < 73 ? 0.8 : - i < 85 ? 0.9 : - i < 100 ? 1 : - i < 125 ? 1.1 : - i < 312 ? 1.2 : - i < 412 ? 1.3 : - i <= 419.3 ? 2 : - i <= 525.13 ? 3 : - i <= 525.25 ? 3.1 : 3.2; + if( v <= 528.16 ){ + X_UA[ 'Safari' ] = v < 73 ? 0.8 : + v < 85 ? 0.9 : + v < 100 ? 1 : + v < 125 ? 1.1 : + v < 312 ? 1.2 : + v < 412 ? 1.3 : + v <= 419.3 ? 2 : + v <= 525.13 ? 3 : + v <= 525.25 ? 3.1 : 3.2; }; }; diff --git a/0.6.x/js/01_core/13_XClass.js b/0.6.x/js/01_core/13_XClass.js index a107366..a0b15cc 100644 --- a/0.6.x/js/01_core/13_XClass.js +++ b/0.6.x/js/01_core/13_XClass.js @@ -214,7 +214,7 @@ X_Class_CommonMethods = proto = sClass.prototype, i = X_Class_SUPER_CALLER.indexOf( me ), args = arguments, - p, name, t, sFunc, ret; + p, name, stack, t, sFunc, ret; if( X_Type_isFunction( myFunc ) ){ for( p in proto ){ diff --git a/0.6.x/js/05_util/04_XXML.js b/0.6.x/js/05_util/04_XXML.js index 5cc2c64..39859ce 100644 --- a/0.6.x/js/05_util/04_XXML.js +++ b/0.6.x/js/05_util/04_XXML.js @@ -12,17 +12,26 @@ X[ 'XML' ] = XMLWrapper; /** - * XML 探索用のラッパークラスです + * XML ツリーを探索して読み出す用のラッパークラスです.XML を操作する機能はありません、あしからず… * @alias X.XML * @class XML 探索用のラッパークラスです * @constructor * @param {XMLElement} */ function XMLWrapper( xml ){ - this._rawXML = xml; + if( xml ){ + this._rawXML = xml; + this.tagName = xml.tagName; + }; }; /** + * tagName または nodeName + * @alias X.XML.prototype.tagName + * @type {string} + */ +XMLWrapper.prototype.tagName = ''; +/** * ラップした xml の数 常に1または0, XMLList の場合2以上 * @alias X.XML.prototype.length * @type {Number} diff --git a/0.6.x/js/05_util/06_XWindow.js b/0.6.x/js/05_util/06_XWindow.js index e6da249..286b655 100644 --- a/0.6.x/js/05_util/06_XWindow.js +++ b/0.6.x/js/05_util/06_XWindow.js @@ -68,7 +68,8 @@ var X_Window = X[ 'Util' ][ 'Window' ] = X_EventDispatcher[ 'inherits' ]( 'url' : function( url ){ var pair = X_Pair_get( this ); - pair && ( pair.location.href = url ); + pair && ( pair.page.location.href = url ); + return this; }, /** @@ -103,13 +104,13 @@ var X_Window = X[ 'Util' ][ 'Window' ] = X_EventDispatcher[ 'inherits' ]( }, /** - * 別窓にfocusする + * 別窓にfocusする ..firefox でできない... * @return {Window} チェーンメソッド */ 'focus' : function(){ var pair = X_Pair_get( this ); - pair && pair[ 'focus' ](); + pair && pair.page[ 'focus' ](); return this; } } diff --git a/0.6.x/js/07_audio/01_XWebAudio.js b/0.6.x/js/07_audio/01_XWebAudio.js index a59f2d2..5e97299 100644 --- a/0.6.x/js/07_audio/01_XWebAudio.js +++ b/0.6.x/js/07_audio/01_XWebAudio.js @@ -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' ], diff --git a/0.6.x/js/07_audio/02_XHTMLAudio.js b/0.6.x/js/07_audio/02_XHTMLAudio.js index 80723b9..ac38571 100644 --- a/0.6.x/js/07_audio/02_XHTMLAudio.js +++ b/0.6.x/js/07_audio/02_XHTMLAudio.js @@ -328,7 +328,11 @@ if( X_Audio_constructor ){ //case 'ratechange' : // defaultPlaybackRate属性とplaybackRate属性のどちらかが更新された場合に発生 //case 'volumechange' : // volume属性とmuted属性のどちらかが変化した場合に発生 break; - + + case 'seeking' : // シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生 + eventType = X_EVENT_MEDIA_SEEKING; + if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true; + break; case 'seeked' : if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = false; break; @@ -336,10 +340,6 @@ if( X_Audio_constructor ){ case 'waiting' : // 次のフレームが利用不可のため再生を停止したが、そのフレームがやがて利用可能になると想定している場合に発生 eventType = X_EVENT_MEDIA_WAITING; break; - case 'seeking' : // シークがtrueに変化し、イベントを発生させるのに十分な時間がシーク操作にかかっている場合に発生 - eventType = X_EVENT_MEDIA_SEEKING; - if( X_HTMLAudio_seekingFixIOS ) this._seekingFixON = true; - break; }; // duration は Infinity, NaN, 0 の場合があるため、これを除外する -- 2.11.0