From ada5c01a35945aced14a0f6b159035cf76668670 Mon Sep 17 00:00:00 2001 From: itozyun Date: Tue, 6 Oct 2015 22:43:48 +0900 Subject: [PATCH] Version 0.6.177, bugfix. --- 0.6.x/js/01_core/02_XUA.js | 52 ++++++------ 0.6.x/js/03_plugin/00_XPlugin.js | 8 +- 0.6.x/js/06_net/00_XNet.js | 8 +- 0.6.x/js/06_net/02_XNetJSONP.js | 98 +++++++++++----------- 0.6.x/js/06_net/05_XXHRGadget.js | 130 +++++++++++++++--------------- 0.6.x/js/07_audio/03_XSilverlightAudio.js | 36 ++++----- 6 files changed, 166 insertions(+), 166 deletions(-) diff --git a/0.6.x/js/01_core/02_XUA.js b/0.6.x/js/01_core/02_XUA.js index c45d86e..da6f8e2 100644 --- a/0.6.x/js/01_core/02_XUA.js +++ b/0.6.x/js/01_core/02_XUA.js @@ -791,23 +791,6 @@ if( X_UA[ 'Safari' ] && X_UA[ 'WebKit' ] < 525.13 ){ }; };*/ -// TODO 構文のサポート instanceof, in, try catch - -if( X_UA[ 'IE' ] < 7 ){ // error @ NN7.2 - X_UA[ 'IE4' ] || X_UA[ 'MacIE' ] ? - document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) : - (function(){ - /** - * ie7 以下で実行する document.execCommand( 'BackgroundImageCache', false, true ) の失敗。 - * bonus: hotfix for IE6 SP1 (bug KB823727) - * multipleIEs IE6 standalone 版では不可, IE5.5 は可,,, - * @alias X.UA.ieExeComError */ - X_UA[ 'ieExeComError' ] = eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' ); - })(); - - //X_UA[ 'ieExeComError' ] && alert( 'document.execCommand error!' ); -}; - /* * HTML5 に対応しない IE8 以下でも の下に
を作ることができる * その際に
の直前に改行文字が出現するが childNodes は長さ 1 で
だけの模様、、、 @@ -840,19 +823,19 @@ if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){ s.text = lines.join( '\n' ); })( [ - 'Function vba_createAXO(v)', + 'Function vba_testAXO(v)', 'On Error Resume Next', 'Set ax = CreateObject(v)', 'If Err.Number Then', 'ax = 1', 'End If', 'Err.Clear', - 'vba_createAXO = ax', + 'vba_testAXO = ax', 'End Function' /*, 'Function vba_try(jsFunc,a1,a2,a3,a4)', 'On Error Resume Next', - 'Dim rs = jsFunc(a1,a2,a3,a4)', + 'Set rs = jsFunc(a1,a2,a3,a4)', 'If Err.Number != 0 Then', 'rs = 0', 'End If', @@ -865,26 +848,41 @@ if( X_UA[ 'IE' ] < 9 && X_Script_VBS_ENABLED ){ }; function X_Script_try( func, args ){ - if( X_UA[ 'IE' ] < 5.5 ){ - - } else { - return ( new Function( 'f,a', 'try{return f.apply({},a)}catch(e){}' ) )( func, args || [] ); + return func.apply( {}, args ); }; + return ( new Function( 'f,a', 'try{return f.apply({},a)}catch(e){}' ) )( func, args || [] ); }; function X_Script_createActiveXObjectSafty( name ){ if( X_UA[ 'IE' ] < 9 ){ if( X_Script_VBS_ENABLED ){ - return window[ 'vba_createAXO' ]( name ) ? null : X_Script_createActiveXObject( name ); + console.log( window[ 'vba_testAXO' ]( name ) + ' ' + name ); + return !window[ 'vba_testAXO' ]( name ) && X_Script_createActiveXObject( name ); }; return X_Script_createActiveXObject( name ); - } else { - return X_Script_try( X_Script_createActiveXObject, [ name ] ); }; + + return X_Script_try( X_Script_createActiveXObject, [ name ] ); }; function X_Script_createActiveXObject( name ){ return new ActiveXObject( name ); }; +// TODO 構文のサポート instanceof, in, try catch + +if( X_UA[ 'IE' ] < 7 ){ // error @ NN7.2 + X_UA[ 'IE4' ] || X_UA[ 'IE5' ] || X_UA[ 'MacIE' ] ? + document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) : + ( + X_Script_try( function(){ document.execCommand( 'BackgroundImageCache', false, true ); return 1; } ) && + /** + * ie7 以下で実行する document.execCommand( 'BackgroundImageCache', false, true ) の失敗。 + * bonus: hotfix for IE6 SP1 (bug KB823727) + * multipleIEs IE6 standalone 版では不可, IE5.5 は可,,, + * @alias X.UA.ieExeComError */ + ( X_UA[ 'ieExeComError' ] = true ) + //eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' ) + ); +}; diff --git a/0.6.x/js/03_plugin/00_XPlugin.js b/0.6.x/js/03_plugin/00_XPlugin.js index 6be1a47..cac6fa8 100644 --- a/0.6.x/js/03_plugin/00_XPlugin.js +++ b/0.6.x/js/03_plugin/00_XPlugin.js @@ -19,9 +19,9 @@ var X_Pulgin_FLASH_VERSION = !X_UA[ 'IE' ] || !X_UA[ 'ActiveX' ] ? parseFloat( X_Object_find( navigator, 'plugins>Shockwave Flash>version' ) || 0 ) : !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){ - var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' ), - ver = obj && obj[ 'GetVariable' ]( '$version' ).split( ' ' ).join( '.' ); - return parseFloat( ver ) || 0; + var obj = X_Script_createActiveXObjectSafty( 'ShockwaveFlash.ShockwaveFlash' ); + + return parseFloat( obj && obj[ 'GetVariable' ]( '$version' ).split( 'WIN ' )[ 1 ] ) || 0; })() : 0, @@ -55,6 +55,8 @@ var X_Pulgin_FLASH_VERSION = parseFloat( X_Object_find( navigator, 'plugins>Unity Player>version' ) || 0 ) : !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){ var obj = X_Script_createActiveXObjectSafty( 'UnityWebPlayer.UnityWebPlayer.1' ); + + console.log( obj && obj[ 'GetPluginVersion' ]() ); return obj ? parseFloat( obj[ 'GetPluginVersion' ]() ) : 0; })() : 0, diff --git a/0.6.x/js/06_net/00_XNet.js b/0.6.x/js/06_net/00_XNet.js index c693cc2..9c388e0 100644 --- a/0.6.x/js/06_net/00_XNet.js +++ b/0.6.x/js/06_net/00_XNet.js @@ -219,10 +219,10 @@ var X_NET_TYPE_XHR = 1, X_NET_QUEUE_LIST = [], X_XHR, - X_NET_JSONPWrapper, + X_JSONP, X_NET_FormWrapper, X_NET_ImageWrapper, - X_NET_GIMRWrapper, + X_GadgetXHR, X_NET_currentWrapper, X_NET_currentQueue, @@ -314,7 +314,7 @@ function X_NET_shiftQueue(){ // force 'gadget', 'flash' switch( X_NET_currentData[ 'test' ] ){ case 'gadget' : - X_NET_currentWrapper = X_NET_GIMRWrapper || X_TEMP.X_Net_GIMR_init(); + X_NET_currentWrapper = X_GadgetXHR || X_TEMP.X_GadgetXHR_init(); break; case 'flash' : break; @@ -348,7 +348,7 @@ function X_NET_shiftQueue(){ }; break; case X_NET_TYPE_JSONP : - X_NET_currentWrapper = X_NET_JSONPWrapper || X_TEMP.X_NET_JSONP_init(); + X_NET_currentWrapper = X_JSONP || X_TEMP.X_JSONP_init(); break; case X_NET_TYPE_FORM : X_NET_currentWrapper = X_NET_FormWrapper || X_TEMP.X_NET_Form_init(); diff --git a/0.6.x/js/06_net/02_XNetJSONP.js b/0.6.x/js/06_net/02_XNetJSONP.js index efff27d..a118ebc 100644 --- a/0.6.x/js/06_net/02_XNetJSONP.js +++ b/0.6.x/js/06_net/02_XNetJSONP.js @@ -24,43 +24,43 @@ // TODO iframe useful or not. TODO check dynamicIframe // TODO file: では http: は使えない -X_TEMP.X_NET_JSONP_cb = function( accessKey, jsonString, time, opt_json2FileSize ){ - if( accessKey !== X_NET_JSONP_ACCESS_KEY || !X_NET_JSONPWrapper._busy ) return; +X_TEMP.X_JSONP_cb = function( accessKey, jsonString, time, opt_json2FileSize ){ + if( accessKey !== X_JSONP_ACCESS_KEY || !X_JSONP._busy ) return; - X_NET_JSONPWrapper._busy = false; + X_JSONP._busy = false; - X_NET_JSONPWrapper + X_JSONP [ 'asyncDispatch' ]( { type : jsonString ? X_EVENT_SUCCESS : X_EVENT_ERROR, response : X_JSON_parseTrustableString( jsonString ) } ); - X_Net_JSONP_errorTimerID && X_Timer_remove( X_Net_JSONP_errorTimerID ); + X_JSONP_errorTimerID && X_Timer_remove( X_JSONP_errorTimerID ); console.log( 'ms : ' + time + ' speed : ' + ( ( jsonString.length + ( opt_json2FileSize || 0 ) ) / time * 1000 ) + ' バイト/秒.' ); }; -var X_NET_JSONP_ACCESS_KEY = Math.random(), +var X_JSONP_ACCESS_KEY = Math.random(), - X_Net_JSONP_maxOnloadCount, + X_JSONP_maxOnloadCount, - X_Net_JSONP_onloadCount = 0, + X_JSONP_onloadCount = 0, - X_Net_JSONP_errorTimerID; + X_JSONP_errorTimerID; -X_TEMP.X_NET_JSONP_init = function(){ - X[ 'Net' ][ '__json_cb__' ] = X_TEMP.X_NET_JSONP_cb; +X_TEMP.X_JSONP_init = function(){ + X[ 'Net' ][ '__json_cb__' ] = X_TEMP.X_JSONP_cb; - X_NET_JSONPWrapper = X_Class_override( X_NinjaIframe(), X_TEMP.X_NET_JSONP_params ); + X_JSONP = X_Class_override( X_NinjaIframe(), X_TEMP.X_JSONP_params ); - delete X_TEMP.X_NET_JSONP_cb; - delete X_TEMP.X_NET_JSONP_init; - delete X_TEMP.X_NET_JSONP_params; + delete X_TEMP.X_JSONP_cb; + delete X_TEMP.X_JSONP_init; + delete X_TEMP.X_JSONP_params; - return X_NET_JSONPWrapper; + return X_JSONP; }; -X_TEMP.X_NET_JSONP_params = { +X_TEMP.X_JSONP_params = { _busy : false, _canceled : false, @@ -95,12 +95,12 @@ X_TEMP.X_NET_JSONP_params = { '', '', '' ]; - X_Net_JSONP_maxOnloadCount = 2; + X_JSONP_maxOnloadCount = 2; } else if( X_UA[ 'IE8' ] ){ html = [ @@ -108,42 +108,42 @@ X_TEMP.X_NET_JSONP_params = { '' /* 以下のコードは XP ie8 では動くけど、win8 IE11(8モード)で動かない 開発の便宜を取って,setTimeout を挟む '', '' */ ]; - X_Net_JSONP_maxOnloadCount = 2; + X_JSONP_maxOnloadCount = 2; } else if( X_UA[ 'IE9' ] ){ html = [ '', '' ]; - X_Net_JSONP_maxOnloadCount = 2; + X_JSONP_maxOnloadCount = 2; } else if( window[ 'JSON' ] ){ html = [ '', '' ]; - X_Net_JSONP_maxOnloadCount = 1; + X_JSONP_maxOnloadCount = 1; } else if( X_UA[ 'IE4' ] || X_UA[ 'MacIE' ] ){ html = [ @@ -151,13 +151,13 @@ X_TEMP.X_NET_JSONP_params = { '', '' ]; - X_Net_JSONP_maxOnloadCount = 3; + X_JSONP_maxOnloadCount = 3; } else if( X_UA[ 'IE' ] < 8 ){ // ie5-7 html = [ @@ -165,58 +165,58 @@ X_TEMP.X_NET_JSONP_params = { '', '' ]; - X_Net_JSONP_maxOnloadCount = 3; + X_JSONP_maxOnloadCount = 3; } else { html = [ '', '', '' ]; - X_Net_JSONP_maxOnloadCount = 2; + X_JSONP_maxOnloadCount = 2; }; - X_NET_JSONPWrapper + X_JSONP [ 'refresh' ]( html.join( '' ) ) - [ 'listen' ]( [ 'ninjaload', 'ninjaerror' ], X_NET_JSONP_iframeListener ); + [ 'listen' ]( [ 'ninjaload', 'ninjaerror' ], X_JSONP_iframeListener ); - X_NET_JSONPWrapper._busy = true; + X_JSONP._busy = true; }, cancel : function(){ - X_NET_JSONPWrapper.reset(); - X_NET_JSONPWrapper._canceled = true; + X_JSONP.reset(); + X_JSONP._canceled = true; }, reset : function(){ - X_NET_JSONPWrapper._busy = X_NET_JSONPWrapper._canceled = false; - X_NET_JSONPWrapper[ 'unlisten' ]( [ 'ninjaload', 'ninjaerror' ], X_NET_JSONP_iframeListener ); - X_NET_JSONPWrapper[ 'refresh' ]( '' ); - X_Net_JSONP_errorTimerID && X_Timer_remove( X_Net_JSONP_errorTimerID ); - X_Net_JSONP_errorTimerID = X_Net_JSONP_onloadCount = 0; + X_JSONP._busy = X_JSONP._canceled = false; + X_JSONP[ 'unlisten' ]( [ 'ninjaload', 'ninjaerror' ], X_JSONP_iframeListener ); + X_JSONP[ 'refresh' ]( '' ); + X_JSONP_errorTimerID && X_Timer_remove( X_JSONP_errorTimerID ); + X_JSONP_errorTimerID = X_JSONP_onloadCount = 0; } }; -function X_NET_JSONP_iframeListener( e ){ +function X_JSONP_iframeListener( e ){ switch( e.type ){ case 'ninjaload' : - console.log( 'iframe onload, but ' + X_Net_JSONP_onloadCount + ' < ' + X_Net_JSONP_maxOnloadCount ); - if( ++X_Net_JSONP_onloadCount < X_Net_JSONP_maxOnloadCount ) return; + console.log( 'iframe onload, but ' + X_JSONP_onloadCount + ' < ' + X_JSONP_maxOnloadCount ); + if( ++X_JSONP_onloadCount < X_JSONP_maxOnloadCount ) return; // TODO callback が無ければ error -> timeout を観る? - X_Net_JSONP_errorTimerID = X_NET_JSONPWrapper[ 'asyncDispatch' ]( 1000, X_EVENT_ERROR ); + X_JSONP_errorTimerID = X_JSONP[ 'asyncDispatch' ]( 1000, X_EVENT_ERROR ); break; case 'ninjaerror' : console.log( 'iframe onerror' ); - X_NET_JSONPWrapper[ 'asyncDispatch' ]( X_EVENT_ERROR ); + X_JSONP[ 'asyncDispatch' ]( X_EVENT_ERROR ); break; }; return X_CALLBACK_UN_LISTEN; diff --git a/0.6.x/js/06_net/05_XXHRGadget.js b/0.6.x/js/06_net/05_XXHRGadget.js index 9b89fdc..ee43ca2 100644 --- a/0.6.x/js/06_net/05_XXHRGadget.js +++ b/0.6.x/js/06_net/05_XXHRGadget.js @@ -17,57 +17,57 @@ * */ -var X_NET_GIMR_canUse = 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ], +var X_GadgetXHR_canUse = 5.5 <= X_UA[ 'IE' ] || !X_UA[ 'IE' ], - X_NET_GIMR_iframeName = 'gadgetProxy_' + ( Math.random() * 100000 | 0 ), + X_GadgetXHR_iframeName = 'gadgetProxy_' + ( Math.random() * 100000 | 0 ), - X_NET_GIMR_GADGET_XML_URL = 'http://googledrive.com/host/0B4Y86MXyTfuoVUkwTE54T3V1V1U', + X_GadgetXHR_GADGET_XML_URL = 'http://googledrive.com/host/0B4Y86MXyTfuoVUkwTE54T3V1V1U', // https://kldleov8fp2dl82hphfmor8riij82tof-a-sites-opensocial.googleusercontent.com/gadgets/ifr - X_NET_GIMR_GADGET_URL = 'http://www.ig.gmodules.com/gadgets/ifr?url=' + encodeURIComponent( X_NET_GIMR_GADGET_XML_URL ) + '&nocache=1', + X_GadgetXHR_GADGET_URL = 'http://www.ig.gmodules.com/gadgets/ifr?url=' + encodeURIComponent( X_GadgetXHR_GADGET_XML_URL ) + '&nocache=1', - X_NET_GIMR_IMAGE_URL = 'img/opacity0.gif', + X_GadgetXHR_IMAGE_URL = 'img/opacity0.gif', // https://code.google.com/p/xssinterface/source/browse/trunk/js/xssinterface.js - X_NET_GIMR_maxQueryLength = X_UA[ 'IE' ] ? 2000 : 6000, + X_GadgetXHR_maxQueryLength = X_UA[ 'IE' ] ? 2000 : 6000, - X_NET_GIMR_requestBatches, + X_GadgetXHR_requestBatches, - X_NET_GIMR_requestOriginal, + X_GadgetXHR_requestOriginal, - X_NET_GIMR_timerID, + X_GadgetXHR_timerID, - X_NET_GIMR_phase = 0, + X_GadgetXHR_phase = 0, - X_NET_GIMR_lastHashString, + X_GadgetXHR_lastHashString, - X_NET_GIMR_isReceiveBatches, X_NET_GIMR_receivedString = ''; + X_GadgetXHR_isReceiveBatches, X_GadgetXHR_receivedString = ''; -function X_NET_GIMR_detectImageOverIframe(){ - var raw = this[ '_rawObject' ], - iwin, ret, i, n; +function X_GadgetXHR_detectImageOverIframe(){ + var raw = X_GadgetXHR[ '_rawObject' ], + iwin, frames, i, ret, n; if( raw ){ - iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_NET_GIMR_iframeName ]; + iwin = raw.contentWindow || ( raw.contentDocument && raw.contentDocument.parentWindow ) || window.frames[ X_GadgetXHR_iframeName ]; - if( iwin && iwin.frames && ( i = iwin.frames.length ) ){ + if( iwin && ( frames = iwin.frames ) && ( i = frames.length ) ){ for( ; i; ){ - if( ret = X_Script_try( X_Object_find, [ iwin.frames[ --i ], 'location.hash' ] ) ) break; + if( ret = X_Script_try( X_Object_find, [ frames[ --i ], 'location>hash' ] ) ) break; }; - if( ret && ret !== X_NET_GIMR_lastHashString ){ - X_NET_GIMR_lastHashString = ret; + if( ret && ret !== X_GadgetXHR_lastHashString ){ + X_GadgetXHR_lastHashString = ret; //console.log( ret.length ); //console.log( '' + ret ); - switch( X_NET_GIMR_phase ){ + switch( X_GadgetXHR_phase ){ case 0 : // makeRequest - iwin.location.href = X_NET_GIMR_GADGET_URL + '#' + X_NET_GIMR_requestBatches.shift(); - if( X_NET_GIMR_requestBatches.length ) return; //TODO boost + iwin.location.href = X_GadgetXHR_GADGET_URL + '#' + X_GadgetXHR_requestBatches.shift(); + if( X_GadgetXHR_requestBatches.length ) return; //TODO boost break; case 1 : // after makeRequest > :ok 待ち - iwin.location.href = X_NET_GIMR_GADGET_URL + '#_waiting_'; + iwin.location.href = X_GadgetXHR_GADGET_URL + '#_waiting_'; break; case 2 : // _waiting_ 通信結果待ち @@ -75,59 +75,59 @@ function X_NET_GIMR_detectImageOverIframe(){ ret = ret.substr( 1 ); n = parseInt( ret ); - if( X_NET_GIMR_isReceiveBatches ){ - X_NET_GIMR_receivedString += X_Net_GIMR_decodeLocationHash( ret ); - if( --X_NET_GIMR_isReceiveBatches ){ - iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_' + X_NET_GIMR_isReceiveBatches; + if( X_GadgetXHR_isReceiveBatches ){ + X_GadgetXHR_receivedString += X_GadgetXHR_decodeLocationHash( ret ); + if( --X_GadgetXHR_isReceiveBatches ){ + iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_' + X_GadgetXHR_isReceiveBatches; return; }; } else if( 1 < n ){ ret = ret.substr( ( n + ':' ).length ); - X_NET_GIMR_receivedString = X_Net_GIMR_decodeLocationHash( ret ); - X_NET_GIMR_isReceiveBatches = --n; - iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_' + X_NET_GIMR_isReceiveBatches; + X_GadgetXHR_receivedString = X_GadgetXHR_decodeLocationHash( ret ); + X_GadgetXHR_isReceiveBatches = --n; + iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_' + X_GadgetXHR_isReceiveBatches; // speedup - X_NET_GIMR_timerID = X_Timer_add( 16, 0, this, X_NET_GIMR_detectImageOverIframe ); + X_GadgetXHR_timerID = X_Timer_add( 16, 0, X_GadgetXHR_detectImageOverIframe ); return X_CALLBACK_UN_LISTEN; } else { - X_NET_GIMR_receivedString = X_Net_GIMR_decodeLocationHash( ret ); + X_GadgetXHR_receivedString = X_GadgetXHR_decodeLocationHash( ret ); }; - X_NET_GIMRWrapper[ 'asyncDispatch' ]( X_JSON_parseTrustableString( X_NET_GIMR_receivedString ) ); - X_NET_GIMR_receivedString = ''; + X_GadgetXHR[ 'asyncDispatch' ]( X_JSON_parseTrustableString( X_GadgetXHR_receivedString ) ); + X_GadgetXHR_receivedString = ''; //console.dir( e ); - X_NET_GIMRWrapper._busy = false; - X_NET_GIMR_timerID = X_NET_GIMR_phase = 0; + X_GadgetXHR._busy = false; + X_GadgetXHR_timerID = X_GadgetXHR_phase = 0; - X_NET_GIMR_lastHashString = ''; - iwin.location.href = X_NET_GIMR_GADGET_URL + '#_recived_'; + X_GadgetXHR_lastHashString = ''; + iwin.location.href = X_GadgetXHR_GADGET_URL + '#_recived_'; return X_CALLBACK_UN_LISTEN; }; - ++X_NET_GIMR_phase; + ++X_GadgetXHR_phase; }; }; }; }; // http://outcloud.blogspot.jp/2015/06/gecko-location-hash.html -function X_Net_GIMR_decodeLocationHash( str ){ +function X_GadgetXHR_decodeLocationHash( str ){ return X_UA[ 'Gecko' ] ? unescape( str ) : decodeURIComponent( str ); }; -X_TEMP.X_Net_GIMR_init = function(){ - X_NET_GIMRWrapper = X_Class_override( +X_TEMP.X_GadgetXHR_init = function(){ + X_GadgetXHR = X_Class_override( X_Node_systemNode .create( 'iframe', { className : 'hidden-iframe', - name : X_NET_GIMR_iframeName, - id : X_NET_GIMR_iframeName, - src : X_NET_GIMR_GADGET_URL + '#' + encodeURIComponent( + name : X_GadgetXHR_iframeName, + id : X_GadgetXHR_iframeName, + src : X_GadgetXHR_GADGET_URL + '#' + encodeURIComponent( X_JSON_stringify( { - 'img' : X_URL_toAbsolutePath( X_NET_GIMR_IMAGE_URL ), - 'len' : X_NET_GIMR_maxQueryLength, + 'img' : X_URL_toAbsolutePath( X_GadgetXHR_IMAGE_URL ), + 'len' : X_GadgetXHR_maxQueryLength, 'itv' : 333, 'gck' : X_UA[ 'Gecko' ] ? 1 : 0, 'err' : X_EVENT_ERROR, @@ -138,18 +138,18 @@ X_TEMP.X_Net_GIMR_init = function(){ allowtransparency : 'no', frameborder : 0, tabindex : -1 - }), - X_TEMP.X_Net_GIMR_props ); + } ), + X_TEMP.X_GadgetXHR_props ); - delete X_TEMP.X_Net_GIMR_init; - delete X_TEMP.X_Net_GIMR_props; + delete X_TEMP.X_GadgetXHR_init; + delete X_TEMP.X_GadgetXHR_props; - X_NET_GIMR_requestBatches = []; + X_GadgetXHR_requestBatches = []; - return X_NET_GIMRWrapper; + return X_GadgetXHR; }; -X_TEMP.X_Net_GIMR_props = { +X_TEMP.X_GadgetXHR_props = { _busy : false, _canceled : false, @@ -160,7 +160,7 @@ X_TEMP.X_Net_GIMR_props = { k, max, sendStr, l, str; //createURL - X_NET_GIMR_requestOriginal = obj; + X_GadgetXHR_requestOriginal = obj; for( k in obj ){ switch( k ){ @@ -175,7 +175,7 @@ X_TEMP.X_Net_GIMR_props = { }; }; - max = X_NET_GIMR_maxQueryLength - X_NET_GIMR_GADGET_URL.length - 5; + max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5; sendStr = X_JSON_stringify( req ); @@ -187,29 +187,29 @@ X_TEMP.X_Net_GIMR_props = { str = encodeURIComponent( sendStr.substr( 0, l ) ); //console.log( l ); }; - X_NET_GIMR_requestBatches.push( str ); + X_GadgetXHR_requestBatches.push( str ); sendStr = sendStr.substr( l ); str = ''; }; sendStr = ''; - if( 1 < X_NET_GIMR_requestBatches.length ){ - X_NET_GIMR_requestBatches[ 0 ] = X_NET_GIMR_requestBatches.length + ':' + X_NET_GIMR_requestBatches[ 0 ]; + if( 1 < X_GadgetXHR_requestBatches.length ){ + X_GadgetXHR_requestBatches[ 0 ] = X_GadgetXHR_requestBatches.length + ':' + X_GadgetXHR_requestBatches[ 0 ]; }; - X_NET_GIMR_timerID = X_Timer_add( 333, 0, this, X_NET_GIMR_detectImageOverIframe ); + X_GadgetXHR_timerID = X_Timer_add( 333, 0, X_GadgetXHR_detectImageOverIframe ); - this._busy = true; + X_GadgetXHR._busy = true; }, cancel : function(){ - this._canceled = true; + X_GadgetXHR._canceled = true; }, reset : function(){ - this._busy = this._canceled = false; - this._onloadCount = 0; + X_GadgetXHR._busy = X_GadgetXHR._canceled = false; + X_GadgetXHR._onloadCount = 0; } }; diff --git a/0.6.x/js/07_audio/03_XSilverlightAudio.js b/0.6.x/js/07_audio/03_XSilverlightAudio.js index 3a3f0b0..aa90277 100644 --- a/0.6.x/js/07_audio/03_XSilverlightAudio.js +++ b/0.6.x/js/07_audio/03_XSilverlightAudio.js @@ -53,7 +53,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ _lastState : '', _interval : 0, // setInterval timer id - 'Constructor' : function( target, source, option ){ + 'Constructor' : function( disatcher, source, option ){ !X_SLAudio_uid && X_TEMP.slaudioInit(); /* @@ -61,7 +61,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ * http://www.atmarkit.co.jp/fdotnet/dotnettips/902slobjcallfromjs/slobjcallfromjs.html * このページのサンプルは sl5+firefox32 環境で動いている。xaml を js から利用する形ではなく、.xap を sl4 以下で作るのがよさそう. */ - this.target = target || this; + this.disatcher = disatcher || this; this._source = source; // X.Audio._slOnload_ は不可 this._onload = 'XAudioSilverlightOnLoad' + ( ++X_SLAudio_uid ); @@ -122,7 +122,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ if( this.playing ){ //X_Timer_once( 16, this, this.actualPlay ); } else { - this.target[ 'dispatch' ]( X_EVENT_ERROR ); // open failed + this.disatcher[ 'dispatch' ]( X_EVENT_ERROR ); // open failed this[ 'kill' ](); }; break; @@ -130,7 +130,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ case 'MediaOpened' : // http://msdn.microsoft.com/ja-jp/library/bb979710(VS.95).aspx this.duration = this[ '_rawObject' ][ 'NaturalDuration' ][ 'Seconds' ] * 1000; - this.target[ 'asyncDispatch' ]( X_EVENT_READY ); + this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY ); this.autoplay && X_Timer_once( 16, this, this.actualPlay ); break; @@ -159,10 +159,10 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ case 'Opening' : switch( this._lastUserAction ){ case 'play' : - this.target[ 'dispatch' ]( X_EVENT_MEDIA_WAITING ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_WAITING ); break; case 'seek' : - this.target[ 'dispatch' ]( X_EVENT_MEDIA_SEEKING ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_SEEKING ); break; case 'pause' : break; @@ -179,7 +179,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ this.playing = false; this._ended = true; this._paused = false; - this.target[ 'dispatch' ]( X_EVENT_ERROR ); + this.disatcher[ 'dispatch' ]( X_EVENT_ERROR ); this[ 'kill' ](); break; @@ -195,9 +195,9 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ case 'play': // play() -> file end -> event('ended') case 'seek': //this.seekTime = 0; - this._ended = true; - this._paused = false; - //this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); + this._ended = true; + this._paused = false; + //this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); //this.setCurrentTime( this.startTime ); break; case 'pause': @@ -216,7 +216,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ //this.playing = true; this._ended = false; this._paused = false; - this.target[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING ); break; // stop() @@ -232,7 +232,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ break; case X_EVENT_KILL_INSTANCE : - this.playing && this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); + this.playing && this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); this.playing && this.actualPause(); if( this._onload ){ @@ -299,7 +299,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ delete this._interval; return X_CALLBACK_UN_LISTEN; }; - this.target[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING ); }, _onEnded : function(){ @@ -317,7 +317,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ console.log( ' > ' + time ); this._ended && this[ '_rawObject' ].play(); this._ended = false; - this.target[ 'dispatch' ]( X_EVENT_MEDIA_WAITING ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_WAITING ); this._timerID = X_Timer_once( X_Audio_getEndTime( this ) - time, this, this._onEnded ); return; }; @@ -333,16 +333,16 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ if( this.autoLoop ){ console.log( '========= loop?' ); - if( !( this.target[ 'dispatch' ]( X_EVENT_MEDIA_BEFORE_LOOP ) & X_CALLBACK_PREVENT_DEFAULT ) ){ + if( !( this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_BEFORE_LOOP ) & X_CALLBACK_PREVENT_DEFAULT ) ){ console.log( '========== loopした' ); this.looped = true; - this.target[ 'dispatch' ]( X_EVENT_MEDIA_LOOPED ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_LOOPED ); this.actualPlay(); }; } else { console.log( '========= pause' ); this.actualPause(); - this.target[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); + this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_ENDED ); }; }; }, @@ -358,7 +358,7 @@ if( X[ 'Pulgin' ][ 'Silverlight' ] ){ this._ended = false; this[ '_rawObject' ].pause(); - //this.target[ 'dispatch' ]( 'pause' ); + //this.disatcher[ 'dispatch' ]( 'pause' ); }, getActualCurrentTime : function(){ -- 2.11.0