OSDN Git Service
(root)
/
pettanr
/
clientJs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a4c3d3a
)
Version 0.6.182, fix X.UA.
author
itozyun
<itozyun@user.sourceforge.jp>
Thu, 22 Oct 2015 15:54:53 +0000
(
00:54
+0900)
committer
itozyun
<itozyun@user.sourceforge.jp>
Thu, 22 Oct 2015 15:54:53 +0000
(
00:54
+0900)
0.6.x/js/01_core/01_X.js
patch
|
blob
|
history
0.6.x/js/01_core/05_XArray.js
patch
|
blob
|
history
0.6.x/js/01_core/06_XString.js
patch
|
blob
|
history
0.6.x/js/01_core/20_XSystem.js
patch
|
blob
|
history
0.6.x/js/07_audio/01_XWebAudio.js
patch
|
blob
|
history
0.6.x/js/07_audio/02_XHTMLAudio.js
patch
|
blob
|
history
0.6.x/js/20_ui/02_XUI_Attr.js
patch
|
blob
|
history
0.6.x/js/20_ui/15_ScrollBox.js
patch
|
blob
|
history
diff --git
a/0.6.x/js/01_core/01_X.js
b/0.6.x/js/01_core/01_X.js
index
5c0ef3d
..
1581967
100644
(file)
--- a/
0.6.x/js/01_core/01_X.js
+++ b/
0.6.x/js/01_core/01_X.js
@@
-46,9
+46,9
@@
var undefined,
X_shortcutContext;
\r
\r
/**
\r
X_shortcutContext;
\r
\r
/**
\r
- * バージョン文字列:"0.6.
123
"
\r
+ * バージョン文字列:"0.6.
xxx
"
\r
* @type {string} */
\r
* @type {string} */
\r
-X[ 'VERSION' ] = '0.6.1
43
';
\r
+X[ 'VERSION' ] = '0.6.1
81
';
\r
\r
/**
\r
* ブートタイム ms
\r
\r
/**
\r
* ブートタイム ms
\r
diff --git
a/0.6.x/js/01_core/05_XArray.js
b/0.6.x/js/01_core/05_XArray.js
index
4154c56
..
c28834c
100644
(file)
--- a/
0.6.x/js/01_core/05_XArray.js
+++ b/
0.6.x/js/01_core/05_XArray.js
@@
-19,11
+19,11
@@
X[ 'Array' ] = {
*/
\r
function X_Array_copy( ary ){
\r
var ret = [],
\r
*/
\r
function X_Array_copy( ary ){
\r
var ret = [],
\r
- i = ary.length;
\r
+ i = 0,
\r
+ l = ary.length;
\r
\r
\r
- if( !i ) return ret;
\r
- for( ; i; ){
\r
- ret[ --i ] = ary[ i ];
\r
+ for( ; i < l; ++i ){
\r
+ ret[ i ] = ary[ i ];
\r
};
\r
return ret;
\r
};
\r
};
\r
return ret;
\r
};
\r
diff --git
a/0.6.x/js/01_core/06_XString.js
b/0.6.x/js/01_core/06_XString.js
index
7af321c
..
aa7d1f2
100644
(file)
--- a/
0.6.x/js/01_core/06_XString.js
+++ b/
0.6.x/js/01_core/06_XString.js
@@
-40,7
+40,8
@@
X[ 'String' ] = {
* @return {*}
\r
*/
\r
function X_String_parse( v ){
\r
* @return {*}
\r
*/
\r
function X_String_parse( v ){
\r
- var _v, n;
\r
+ var _v;
\r
+
\r
if( X_Type_isString( v ) ){
\r
switch( v ){
\r
case '' : return v;
\r
if( X_Type_isString( v ) ){
\r
switch( v ){
\r
case '' : return v;
\r
@@
-57,8
+58,7
@@
function X_String_parse( v ){
case 'undefined' : return;
\r
};
\r
_v = v.split( ' ' ).join( '' );
\r
case 'undefined' : return;
\r
};
\r
_v = v.split( ' ' ).join( '' );
\r
- n = _v - 0;
\r
- if( '' + n === _v || '' + n === '0' + _v ) return n;
\r
+ if( X_String_isNumberString( _v ) ) return _v - 0;
\r
};
\r
return v;
\r
};
\r
};
\r
return v;
\r
};
\r
@@
-66,22
+66,32
@@
function X_String_parse( v ){
/**
\r
* <p>空白文字を半角スペースに変換します。\n\r,\t,\r,\n,\f,\b
\r
* <p>2つ以上の連続する半角スペースを一つの半角スペースにします。
\r
/**
\r
* <p>空白文字を半角スペースに変換します。\n\r,\t,\r,\n,\f,\b
\r
* <p>2つ以上の連続する半角スペースを一つの半角スペースにします。
\r
+ * <p>undefined, null が与えられた場合は '' を返します。
\r
+ * <p>数値,Object が与えられた場合は toString します。
\r
* @alias X.String.cleanupWhiteSpace
\r
* @param {string}
\r
* @return {string}
\r
*/
\r
function X_String_cleanupWhiteSpace( text ){
\r
* @alias X.String.cleanupWhiteSpace
\r
* @param {string}
\r
* @return {string}
\r
*/
\r
function X_String_cleanupWhiteSpace( text ){
\r
- var _ = ' ', __ = ' ', CRLF = X_String_CRLF;
\r
+ var _ = ' ', __ = ' '
; //
, CRLF = X_String_CRLF;
\r
\r
\r
- if(
!text
) return '';
\r
+ if(
text == null || text === ''
) return '';
\r
\r
//text.indexOf( CRLF ) !== -1 && ( text = text.split( CRLF ).join( _ ) );
\r
\r
//text.indexOf( CRLF ) !== -1 && ( text = text.split( CRLF ).join( _ ) );
\r
- text.indexOf( '\n\r' ) !== -1 && ( text = text.split( '\n\r' ).join( _ ) );
\r
+
/*
text.indexOf( '\n\r' ) !== -1 && ( text = text.split( '\n\r' ).join( _ ) );
\r
text.indexOf( '\t' ) !== -1 && ( text = text.split( '\t' ).join( _ ) );
\r
text.indexOf( '\r' ) !== -1 && ( text = text.split( '\r' ).join( _ ) );
\r
text.indexOf( '\n' ) !== -1 && ( text = text.split( '\n' ).join( _ ) );
\r
text.indexOf( '\f' ) !== -1 && ( text = text.split( '\f' ).join( _ ) );
\r
text.indexOf( '\t' ) !== -1 && ( text = text.split( '\t' ).join( _ ) );
\r
text.indexOf( '\r' ) !== -1 && ( text = text.split( '\r' ).join( _ ) );
\r
text.indexOf( '\n' ) !== -1 && ( text = text.split( '\n' ).join( _ ) );
\r
text.indexOf( '\f' ) !== -1 && ( text = text.split( '\f' ).join( _ ) );
\r
- text.indexOf( '\b' ) !== -1 && ( text = text.split( '\b' ).join( _ ) );
\r
+ text.indexOf( '\b' ) !== -1 && ( text = text.split( '\b' ).join( _ ) ); */
\r
+
\r
+ text = text.toString()
\r
+ .split( X_String_CRLF ).join( _ )
\r
+ .split( '\r' ).join( _ )
\r
+ .split( '\n' ).join( _ )
\r
+ .split( '\t' ).join( _ )
\r
+ .split( '\f' ).join( _ )
\r
+ .split( '\b' ).join( _ );
\r
\r
while( true ){
\r
text = text.split( __ );
\r
\r
while( true ){
\r
text = text.split( __ );
\r
@@
-92,17
+102,19
@@
function X_String_cleanupWhiteSpace( text ){
\r
/**
\r
* 空白文字列を <br> に変換します。タブを &nbsp; 4つに変換します。
\r
\r
/**
\r
* 空白文字列を <br> に変換します。タブを &nbsp; 4つに変換します。
\r
+ * <p>undefined, null が与えられた場合は '' を返します。
\r
+ * <p>数値,Object が与えられた場合は toString します。
\r
* @alias X.String.whiteSpaceToTag
\r
* @param {string}
\r
* @return {string} html文字列
\r
*/
\r
function X_String_whiteSpaceToTag( text ){
\r
* @alias X.String.whiteSpaceToTag
\r
* @param {string}
\r
* @return {string} html文字列
\r
*/
\r
function X_String_whiteSpaceToTag( text ){
\r
- if( text == null ) return '';
\r
+ if( text == null
|| text === ''
) return '';
\r
return text.toString()
\r
//.split( '\r\n\r\n' ).join( '<br>' )
\r
//.split( '\n\r\n\r' ).join( '<br>' )
\r
//.split( '\r\n' ).join( '<br>' )
\r
return text.toString()
\r
//.split( '\r\n\r\n' ).join( '<br>' )
\r
//.split( '\n\r\n\r' ).join( '<br>' )
\r
//.split( '\r\n' ).join( '<br>' )
\r
- .split(
'\n\r'
).join( '<br>' )
\r
+ .split(
X_String_CRLF
).join( '<br>' )
\r
.split( '\r' ).join( '<br>' )
\r
.split( '\n' ).join( '<br>' )
\r
.split( '\t' ).join( ' ' )
\r
.split( '\r' ).join( '<br>' )
\r
.split( '\n' ).join( '<br>' )
\r
.split( '\t' ).join( ' ' )
\r
@@
-112,40
+124,44
@@
function X_String_whiteSpaceToTag( text ){
\r
/**
\r
* 一部の文字実体参照をデコードします。", &, <, >,
\r
\r
/**
\r
* 一部の文字実体参照をデコードします。", &, <, >,
\r
+ * <p>undefined, null が与えられた場合は '' を返します。
\r
+ * <p>数値,Object が与えられた場合は toString します。
\r
* @alias X.String.chrReferanceTo
\r
* @param {string}
\r
* @return {string} html文字列
\r
*/
\r
function X_String_chrReferanceTo( str ){
\r
* @alias X.String.chrReferanceTo
\r
* @param {string}
\r
* @return {string} html文字列
\r
*/
\r
function X_String_chrReferanceTo( str ){
\r
- if( str == null ) return '';
\r
+ if( str == null
|| str === ''
) return '';
\r
return str.toString()
\r
return str.toString()
\r
- .split( '"' ).join( '"' ) // first!
\r
- .split( '&' ).join( '&' )
\r
- .split( '<' ).join( '<' )
\r
- .split( '>' ).join( '>' )
\r
- .split( ' ' ).join( ' ' );
\r
+ .split( '"' ).join( '"' )
\r
+ .split( ''' ).join( "'" )
\r
+ .split( '<' ).join( '<' )
\r
+ .split( '>' ).join( '>' )
\r
+ .split( ' ' ).join( ' ' )
\r
+ .split( '&' ).join( '&' ); // last!
\r
};
\r
\r
/**
\r
* htmlタグで使われる文字を文字実体参照に変換します。", &, <, >,
\r
};
\r
\r
/**
\r
* htmlタグで使われる文字を文字実体参照に変換します。", &, <, >,
\r
+ * <p>undefined, null が与えられた場合は '' を返します。
\r
+ * <p>数値,Object が与えられた場合は toString します。
\r
* @alias X.String.chrReferanceTo
\r
* @param {string}
\r
* @return {string}
\r
*/
\r
function X_String_toChrReferance( str ){
\r
* @alias X.String.chrReferanceTo
\r
* @param {string}
\r
* @return {string}
\r
*/
\r
function X_String_toChrReferance( str ){
\r
- if( str == null ) return '';
\r
- str += '';
\r
+ if( str == null || str === '' ) return '';
\r
return str.toString()
\r
return str.toString()
\r
- .split( '&' ).join( '&' )
\r
+ .split( '&' ).join( '&' )
// first!
\r
.split( '"' ).join( '"' )
\r
.split( '"' ).join( '"' )
\r
- .split(
'"'
).join( ''' )
\r
+ .split(
"'"
).join( ''' )
\r
.split( '<' ).join( '<' )
\r
.split( '>' ).join( '>' )
\r
.split( ' ' ).join( ' ' );
\r
};
\r
\r
/**
\r
.split( '<' ).join( '<' )
\r
.split( '>' ).join( '>' )
\r
.split( ' ' ).join( ' ' );
\r
};
\r
\r
/**
\r
- *
htmlタグで使われる文字を文字実体参照に変換します。", &, <, >,
\r
+ *
文字列化した数値か?調べます。
\r
* @alias X.String.isNumberString
\r
* @param {string}
\r
* @return {boolean}
\r
* @alias X.String.isNumberString
\r
* @param {string}
\r
* @return {boolean}
\r
diff --git
a/0.6.x/js/01_core/20_XSystem.js
b/0.6.x/js/01_core/20_XSystem.js
index
3289140
..
feef443
100644
(file)
--- a/
0.6.x/js/01_core/20_XSystem.js
+++ b/
0.6.x/js/01_core/20_XSystem.js
@@
-56,7
+56,7
@@
X_TEMP.onRearchEndOfScript = function(){
var callbacks = X_TEMP.onSystemReady,
\r
i = callbacks.length,
\r
now = X_Timer_now(),
\r
var callbacks = X_TEMP.onSystemReady,
\r
i = callbacks.length,
\r
now = X_Timer_now(),
\r
- speed = now - X
.bootTime
;
\r
+ speed = now - X
[ 'bootTime' ]
;
\r
\r
X_System_javascriptScore = speed;
\r
console.log( 'js score ' + speed );
\r
\r
X_System_javascriptScore = speed;
\r
console.log( 'js score ' + speed );
\r
diff --git
a/0.6.x/js/07_audio/01_XWebAudio.js
b/0.6.x/js/07_audio/01_XWebAudio.js
index
c9fa1ed
..
966f667
100644
(file)
--- a/
0.6.x/js/07_audio/01_XWebAudio.js
+++ b/
0.6.x/js/07_audio/01_XWebAudio.js
@@
-78,9
+78,10
@@
if( X_Audio_constructor ){
};
};
-var X_WebAudio_context = !X_UA[ 'iPhone_4s' ] && !X_UA[ 'iPad_2Mini1' ] && !X_UA[ 'iPod_4' ] &&
+var X_WebAudio_context = // 4s 以下ではない iPad 2G または iPad mini 1G 以下ではない, iPod touch 4G 以下ではない
+ !X_UA[ 'iPhone_4s' ] && !X_UA[ 'iPad_2Mini1' ] && !X_UA[ 'iPod_4' ] &&
// Android2 + Gecko で WebAudio が極めて不安定
// Android2 + Gecko で WebAudio が極めて不安定
- !
X_UA[ 'Fennec' ]
&&
+ !
( X_UA[ 'Fennec' ] && X_UA[ 'Android' ] < 3 )
&&
// Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
// Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
!( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 42 && X_UA[ 'Windows' ] ) &&
// Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
// Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
!( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 42 && X_UA[ 'Windows' ] ) &&
diff --git
a/0.6.x/js/07_audio/02_XHTMLAudio.js
b/0.6.x/js/07_audio/02_XHTMLAudio.js
index
1ab50db
..
4095242
100644
(file)
--- a/
0.6.x/js/07_audio/02_XHTMLAudio.js
+++ b/
0.6.x/js/07_audio/02_XHTMLAudio.js
@@
-83,6
+83,14
@@
if( X_Audio_constructor ){
_ready : false,
\r
_src : '',
\r
\r
_ready : false,
\r
_src : '',
\r
\r
+ // 0:
\r
+ // 1: touch 要求完了
\r
+ // 2: touch による play 中
\r
+ // 4: duration 取得完了 currentTime へのセット
\r
+ // 8: playing || loadeddata or canplaythrought
\r
+ // 16: READY 発火済
\r
+ _readyState : 0,
\r
+
\r
_touchRequested : false,
\r
_touched : false,
\r
\r
_touchRequested : false,
\r
_touched : false,
\r
\r
@@
-125,13
+133,6
@@
if( X_Audio_constructor ){
} else {
\r
raw = X_TEMP.rawAudio || new X_Audio_constructor( '' );
\r
// X_Doc_create( 'audio', { src : source } )[ 'appendTo' ]( X.Doc.body );
\r
} else {
\r
raw = X_TEMP.rawAudio || new X_Audio_constructor( '' );
\r
// X_Doc_create( 'audio', { src : source } )[ 'appendTo' ]( X.Doc.body );
\r
-
\r
- raw.preload = 'auto';
\r
- //if( X_UA[ 'AOSP' ] < 4.2 ){
\r
- raw.autoplay = true; //raw.autobuffer = true; // Android 4.0-4.1.x で必要
\r
- //} else {
\r
- // raw.autoplay = raw.autobuffer = false;
\r
- //};
\r
//raw.autoplay = raw.autobuffer = raw.loop = false; // loop を使えば ended で止まること回避できるかも 但し ended イベントが起きなくなる
\r
\r
if( X_TEMP.rawAudio ) delete X_TEMP.rawAudio;
\r
//raw.autoplay = raw.autobuffer = raw.loop = false; // loop を使えば ended で止まること回避できるかも 但し ended イベントが起きなくなる
\r
\r
if( X_TEMP.rawAudio ) delete X_TEMP.rawAudio;
\r
@@
-143,7
+144,7
@@
if( X_Audio_constructor ){
X_EVENT_KILL_INSTANCE,
\r
X_HTMLAudio_playTrigger,
\r
//'loadstart', 'load',
\r
X_EVENT_KILL_INSTANCE,
\r
X_HTMLAudio_playTrigger,
\r
//'loadstart', 'load',
\r
- 'progress', 'error',
\r
+ 'progress',
//
'error',
\r
// 'suspend', 'abort', 'emptied', 'stalled',
\r
// 'play', 'pause', 'seeked', 'ratechange', 'volumechange',
\r
'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough',
\r
// 'suspend', 'abort', 'emptied', 'stalled',
\r
// 'play', 'pause', 'seeked', 'ratechange', 'volumechange',
\r
'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough',
\r
@@
-159,8
+160,15
@@
if( X_Audio_constructor ){
'playing', 'waiting', 'seeking',
\r
'durationchange', 'timeupdate', 'ended' ], this.onDebug );
\r
\r
'playing', 'waiting', 'seeking',
\r
'durationchange', 'timeupdate', 'ended' ], this.onDebug );
\r
\r
- raw.src = source;
\r
- raw.load(); // Android4.1.1 HTL21 では必要!
\r
+ if( X_HTMLAudio_need1stTouch ){
\r
+ raw.src = source;
\r
+ } else {
\r
+ raw.preload = 'auto';
\r
+ raw.autoplay = true; // Android 4.0-4.1.x で必要
\r
+ //raw.autobuffer = true;
\r
+ raw.src = source;
\r
+ raw.load(); // Android4.1.1 HTL21 では必要!
\r
+ };
\r
},
\r
\r
onDebug : function( e ){
\r
},
\r
\r
onDebug : function( e ){
\r
@@
-215,9
+223,7
@@
if( X_Audio_constructor ){
};
\r
case 'canplay' : // 今すぐに再生を再開できるが、バッファリングが不十分でコンテンツを最後まで表示できないと予測している場合に発生
\r
if( X_HTMLAudio_durationFix && !X_HTMLAudio_need1stTouch && this._durationFixPhase === 1 ){
\r
};
\r
case 'canplay' : // 今すぐに再生を再開できるが、バッファリングが不十分でコンテンツを最後まで表示できないと予測している場合に発生
\r
if( X_HTMLAudio_durationFix && !X_HTMLAudio_need1stTouch && this._durationFixPhase === 1 ){
\r
- console.log( '▲ DurationFix の開始 @' + e.type );
\r
- this._durationFixPhase = 2;
\r
- raw.play();
\r
+ this.actualPlay();
\r
raw.currentTime = 0; // 必要!
\r
};
\r
if( this._endedFixON ){
\r
raw.currentTime = 0; // 必要!
\r
};
\r
if( this._endedFixON ){
\r
@@
-271,10
+277,10
@@
if( X_Audio_constructor ){
//case 'abort' : // ダウンロードの完了前にコンテンツの取得を停止した場合に発生(この停止はエラーによるものではない)
\r
// break;
\r
\r
//case 'abort' : // ダウンロードの完了前にコンテンツの取得を停止した場合に発生(この停止はエラーによるものではない)
\r
// break;
\r
\r
-
case 'error' :
// コンテンツの取得実行中にエラーが発生した場合に発生
\r
+
//case 'error' :
// コンテンツの取得実行中にエラーが発生した場合に発生
\r
// Opera12 src = '' で error が発生、無視する
\r
// eventType = X_EVENT_ERROR;
\r
// Opera12 src = '' で error が発生、無視する
\r
// eventType = X_EVENT_ERROR;
\r
- break;
\r
+
//
break;
\r
\r
case 'playing' : // 再生が開始された場合に発生
\r
if( X_HTMLAudio_volumeFix ){
\r
\r
case 'playing' : // 再生が開始された場合に発生
\r
if( X_HTMLAudio_volumeFix ){
\r
@@
-329,9
+335,10
@@
if( X_Audio_constructor ){
this._loaded = this._loaded || ready;
\r
\r
//
\r
this._loaded = this._loaded || ready;
\r
\r
//
\r
- if( X_HTMLAudio_need1stTouch && !this._touchRequested ){
\r
+ if( X_HTMLAudio_need1stTouch && !this._touchRequested ){
// !this._readyState
\r
if( e.type === X_HTMLAudio_playTrigger ){
\r
this._touchRequested = true;
\r
if( e.type === X_HTMLAudio_playTrigger ){
\r
this._touchRequested = true;
\r
+ this._readyState = 1;
\r
this.disatcher[ 'asyncDispatch' ]( X_EVENT_MEDIA_CAN_TOUCH_LOAD );
\r
};
\r
} else
\r
this.disatcher[ 'asyncDispatch' ]( X_EVENT_MEDIA_CAN_TOUCH_LOAD );
\r
};
\r
} else
\r
@@
-354,12
+361,12
@@
if( X_Audio_constructor ){
if( this._loaded && this.duration && !this._ready ){
\r
this._ready = true;
\r
this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY );
\r
if( this._loaded && this.duration && !this._ready ){
\r
this._ready = true;
\r
this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY );
\r
- this.autoplay && !X_
WebAudio_need1stTouch && X_Timer_once( 16, this, this.p
lay );
\r
+ this.autoplay && !X_
HTMLAudio_need1stTouch && X_Timer_once( 16, this, this.actualP
lay );
\r
console.log( '> Audio Loaded!! ' + e.type + ' d:' + ( this.duration | 0 ) );
\r
} else
\r
if( eventType ){
\r
this.disatcher[ 'dispatch' ]( eventType );
\r
console.log( '> Audio Loaded!! ' + e.type + ' d:' + ( this.duration | 0 ) );
\r
} else
\r
if( eventType ){
\r
this.disatcher[ 'dispatch' ]( eventType );
\r
- eventType === X_EVENT_ERROR && this[ 'kill' ]();
\r
+
//
eventType === X_EVENT_ERROR && this[ 'kill' ]();
\r
};
\r
},
\r
\r
};
\r
},
\r
\r
@@
-377,15
+384,16
@@
if( X_Audio_constructor ){
//return;
\r
};
\r
\r
//return;
\r
};
\r
\r
- if( this._touchRequested && !this._touched ){
\r
+ if( this._touchRequested && !this._touched ){
// this._readyState === 1
\r
e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ];
\r
if( !e || !e[ 'pointerType' ] ){
\r
alert( 'タッチイベント以外での play! ' + e.type );
\r
return;
\r
};
\r
this._touched = true;
\r
e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ];
\r
if( !e || !e[ 'pointerType' ] ){
\r
alert( 'タッチイベント以外での play! ' + e.type );
\r
return;
\r
};
\r
this._touched = true;
\r
+ this._readyState = 2;
\r
} else
\r
} else
\r
- if( !this._ready && ( !X_HTMLAudio_durationFix || !X_HTMLAudio_need1stTouch ) ){
\r
+ if( !this._ready && ( !X_HTMLAudio_durationFix || !X_HTMLAudio_need1stTouch ) ){
// this._readyState < 2
\r
this.autoplay = true;
\r
return;
\r
};
\r
this.autoplay = true;
\r
return;
\r
};
\r
@@
-429,7
+437,7
@@
if( X_Audio_constructor ){
//また、GoogleChrome7 では currentTime = 0 直後に play() すると、pause()した位置前後の音が混ざることがある。(少なくとも自分の環境では)
\r
\r
// iOS で duration が 0 の時に触ると error
\r
//また、GoogleChrome7 では currentTime = 0 直後に play() すると、pause()した位置前後の音が混ざることがある。(少なくとも自分の環境では)
\r
\r
// iOS で duration が 0 の時に触ると error
\r
- if( !X_HTMLAudio_durationFix || this.duration ) raw.currentTime = this._lastCurrentTime;
\r
+ if( !X_HTMLAudio_durationFix || this.duration ) raw.currentTime = this._lastCurrentTime;
// 2 < this._readyState
\r
\r
console.log( '[HTMLAudio] play ' + begin + ' -> ' + end + ' crt:' + ( raw.currentTime | 0 ) + ' last:' + this._lastCurrentTime );
\r
\r
\r
console.log( '[HTMLAudio] play ' + begin + ' -> ' + end + ' crt:' + ( raw.currentTime | 0 ) + ' last:' + this._lastCurrentTime );
\r
\r
diff --git
a/0.6.x/js/20_ui/02_XUI_Attr.js
b/0.6.x/js/20_ui/02_XUI_Attr.js
index
26b9b3c
..
447c496
100644
(file)
--- a/
0.6.x/js/20_ui/02_XUI_Attr.js
+++ b/
0.6.x/js/20_ui/02_XUI_Attr.js
@@
-176,7
+176,7
@@
function XUI_Attr_copy( proto, supports ){
var support, p;
\r
\r
for( p in supports ){
\r
var support, p;
\r
\r
for( p in supports ){
\r
- if( X_EMPTY_OBJECT[ p ] ) continue;
\r
+
//
if( X_EMPTY_OBJECT[ p ] ) continue;
\r
if( p === '_last' ) continue;
\r
support = supports[ p ];
\r
proto[ support.No ] = support[ 0 ];
\r
if( p === '_last' ) continue;
\r
support = supports[ p ];
\r
proto[ support.No ] = support[ 0 ];
\r
@@
-205,7
+205,7
@@
function XUI_Attr_preset( baseKlass, opt_supports, opt_attrs ){
// setAttr に書き換え
\r
XUI_attrClassProto = proto;
\r
for( p in opt_attrs ){
\r
// setAttr に書き換え
\r
XUI_attrClassProto = proto;
\r
for( p in opt_attrs ){
\r
- if( X_EMPTY_OBJECT[ p ] ) continue;
\r
+
//
if( X_EMPTY_OBJECT[ p ] ) continue;
\r
supports[ p ] && XUI_AbstractUINode.prototype.setAttr( p, supports[ p ], opt_attrs[ p ] );
\r
};
\r
XUI_attrClassProto = null;
\r
supports[ p ] && XUI_AbstractUINode.prototype.setAttr( p, supports[ p ], opt_attrs[ p ] );
\r
};
\r
XUI_attrClassProto = null;
\r
diff --git
a/0.6.x/js/20_ui/15_ScrollBox.js
b/0.6.x/js/20_ui/15_ScrollBox.js
index
5e49890
..
817ebdb
100644
(file)
--- a/
0.6.x/js/20_ui/15_ScrollBox.js
+++ b/
0.6.x/js/20_ui/15_ScrollBox.js
@@
-1,4
+1,8
@@
-
\r
+/*
\r
+ * scroll 要素は常にひとつ
\r
+ * ScrollManager
\r
+ * indicatorX, Y は再利用
\r
+ */
\r
\r
\r
var X_UI_ScrollBox_SUPPORT_ATTRS = {
\r
\r
\r
var X_UI_ScrollBox_SUPPORT_ATTRS = {
\r
@@
-76,6
+80,9
@@
var XUI_ScrollBox = XUI_ChromeBox.inherits(
_containerNode : null,
\r
xnodeSlider : null,
\r
\r
_containerNode : null,
\r
xnodeSlider : null,
\r
\r
+ xnodeIndicatorX : null,
\r
+ xnodeIndicatorY : null,
\r
+
\r
Constructor : function( user, layout, args ){
\r
this[ 'Super' ]( user, layout, args );
\r
this._containerNode = X_Pair_get( this.containerNode );
\r
Constructor : function( user, layout, args ){
\r
this[ 'Super' ]( user, layout, args );
\r
this._containerNode = X_Pair_get( this.containerNode );
\r
@@
-136,14
+143,14
@@
function X_UI_ScrollBox_onLayoutBefore( e ){
};
\r
this.scrollXRatio = this.scrollX ? this.scrollXMax / this.scrollX : 0;
\r
this.scrollYRatio = this.scrollY ? this.scrollYMax / this.scrollY : 0;
\r
};
\r
this.scrollXRatio = this.scrollX ? this.scrollXMax / this.scrollX : 0;
\r
this.scrollYRatio = this.scrollY ? this.scrollYMax / this.scrollY : 0;
\r
- this.xnodeSlider
.stop
();
\r
+ this.xnodeSlider
[ 'stop' ]
();
\r
this.isInTransition = false;
\r
return X_CALLBACK_NONE;
\r
};
\r
\r
function X_UI_ScrollBox_onLayoutComplete( e ){
\r
// scroll の停止、GPU の解除
\r
this.isInTransition = false;
\r
return X_CALLBACK_NONE;
\r
};
\r
\r
function X_UI_ScrollBox_onLayoutComplete( e ){
\r
// scroll の停止、GPU の解除
\r
- var font = this.fontSize = this.xnodeSlider
.call
( 'fontSize' );
\r
+ var font = this.fontSize = this.xnodeSlider
[ 'call' ]
( 'fontSize' );
\r
\r
this.scrollXMax = ( this.boxWidth - this._containerNode.boxWidth ) * font | 0;
\r
this.scrollYMax = ( this.boxHeight - this._containerNode.boxHeight ) * font | 0;
\r
\r
this.scrollXMax = ( this.boxWidth - this._containerNode.boxWidth ) * font | 0;
\r
this.scrollYMax = ( this.boxHeight - this._containerNode.boxHeight ) * font | 0;
\r
@@
-182,7
+189,7
@@
function X_UI_ScrollBox_onLayoutComplete( e ){
if( this.scrolling ){
\r
// scroller 削除
\r
this[ 'unlisten' ]( XUI_Event._POINTER_DOWN, this, X_UI_ScrollBox_onStart );
\r
if( this.scrolling ){
\r
// scroller 削除
\r
this[ 'unlisten' ]( XUI_Event._POINTER_DOWN, this, X_UI_ScrollBox_onStart );
\r
- X_UI_rootData[ 'unlisten' ]( XUI_Event.LAYOUT_BEFORE,
this, X_UI_ScrollBox_onLayoutBefore );
\r
+ X_UI_rootData[ 'unlisten' ]( XUI_Event.LAYOUT_BEFORE, this, X_UI_ScrollBox_onLayoutBefore );
\r
\r
( this.scrollX !== 0 || this.scrollY !== 0 ) && X_UI_ScrollBox_translate( this, 0, 0, 100, '', 300 );
\r
\r
\r
( this.scrollX !== 0 || this.scrollY !== 0 ) && X_UI_ScrollBox_translate( this, 0, 0, 100, '', 300 );
\r
\r
@@
-199,7
+206,7
@@
function X_UI_ScrollBox_onLayoutComplete( e ){
opt_easing = opt_easing === '' ? '' : opt_easing || 'circular';
\r
opt_release = 0 <= opt_release ? opt_release : 300;
\r
\r
opt_easing = opt_easing === '' ? '' : opt_easing || 'circular';
\r
opt_release = 0 <= opt_release ? opt_release : 300;
\r
\r
- that.xnodeSlider
.animate
(
\r
+ that.xnodeSlider
[ 'animate' ]
(
\r
{
\r
x : that.scrollX,
\r
y : that.scrollY
\r
{
\r
x : that.scrollX,
\r
y : that.scrollY
\r
@@
-247,7
+254,7
@@
function X_UI_ScrollBox_onStart( e ){
this.isInTransition = false;
\r
this[ 'dispatch' ]( XUI_Event.SCROLL_END );
\r
// TODO current位置
\r
this.isInTransition = false;
\r
this[ 'dispatch' ]( XUI_Event.SCROLL_END );
\r
// TODO current位置
\r
- this.xnodeSlider
.stop
();
\r
+ this.xnodeSlider
[ 'stop' ]
();
\r
};
\r
\r
this.startX = this.scrollX;
\r
};
\r
\r
this.startX = this.scrollX;
\r