OSDN Git Service

Version 0.6.94, new X.Callback is fast & light maybe.
authoritozyun <itozyun@user.sourceforge.jp>
Tue, 7 Oct 2014 13:26:08 +0000 (22:26 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Tue, 7 Oct 2014 13:26:08 +0000 (22:26 +0900)
29 files changed:
0.6.x/js/01_core/01_X.js
0.6.x/js/01_core/02_XUA.js
0.6.x/js/01_core/10_XCallback.js
0.6.x/js/01_core/11_XClass.js
0.6.x/js/01_core/13_XEventDispatcher.js
0.6.x/js/01_core/14_XTimer.js
0.6.x/js/02_dom/00_XDom.js
0.6.x/js/02_dom/01_XDomDTD.js
0.6.x/js/02_dom/02_XDomNode.js
0.6.x/js/02_dom/03_XDomEvent.js
0.6.x/js/02_dom/04_XDomBoxModel.js
0.6.x/js/02_dom/05_XDomAttr.js
0.6.x/js/02_dom/06_XDomStyle.js
0.6.x/js/02_dom/07_XDomNodeList.js
0.6.x/js/02_dom/08_XDomSelector.js
0.6.x/js/02_dom/09_XDomParser.js
0.6.x/js/02_dom/20_XDomImage.js
0.6.x/js/02_dom/22_XDomBuilder.js
0.6.x/js/03_plugin/00_XPlugin.js
0.6.x/js/05_net/01_XNetXHR.js
0.6.x/js/06_audio/00_XAudio.js
0.6.x/js/06_audio/01_XHTML5Audio.js
0.6.x/js/06_audio/02_XSilverlightAudio.js
0.6.x/js/20_ui/02_XUI_Attr.js
0.6.x/js/20_ui/04_XUI_Event.js
0.6.x/js/20_ui/05_XUI_Gesture.js
0.6.x/js/20_ui/06_AbstractUINode.js
0.6.x/js/20_ui/20_PageRoot.js
0.6.x/js/import.js

index e53d43e..9706243 100644 (file)
@@ -10,7 +10,7 @@ if( !window['console'] || ( window.parent && window.parent.log ) ) console = { l
 \r
 var undefined,\r
        X = new Function( 'return X._shortcut && X._shortcut.apply( X._shortcut, arguments )' ),\r
-       X_TEMP = {};\r
+       X_TEMP = { onSystemReady : [] };\r
 \r
 X.VERSION = '0.6.89';\r
                \r
@@ -31,94 +31,3 @@ X.inHead = (function( s ){
        return s.tagName.toLowerCase() === 'head';// opera7.23 s.tagName is 'HTML'\r
 })( document.scripts || document.getElementsByTagName && document.getElementsByTagName( 'script' ) || document.all && document.all.tags( 'script' ) );\r
 \r
-X.parse = function( v ){\r
-       var _v, n;\r
-       if( Type.isString( v ) === true ){\r
-               switch( v ){\r
-                       case ''          : return v;\r
-                       //case '{}'        : return {};\r
-                       //case '[]'        : return [];\r
-                       case 'NaN'       : return NaN;\r
-                       case 'null'      : return null;\r
-                       case 'true'      : return true;\r
-                       case 'false'     : return false;\r
-                       case 'Infinity'  : return 1/0;//Number.POSITIVE_INFINITY;\r
-                       case '-Infinity' : return -1/0;//Number.NEGATIVE_INFINITY;\r
-                       case 'void(0)' :\r
-                       case 'void 0' :\r
-                       case 'undefined' : return;\r
-               };\r
-               _v = v.split( ' ' ).join( '' );\r
-               n  = _v - 0;\r
-               if( '' + n === _v || '' + n === '0' + _v  ) return n;\r
-       };\r
-       return v;\r
-};\r
-               \r
-X.cloneObject = function( src ){\r
-       var ret, k;\r
-       if( typeof src !== 'object' ) return src;\r
-       ret = {};\r
-       for( k in src ){\r
-               ret[ k ] = src[ k ];\r
-       };\r
-       return ret;\r
-};\r
-\r
-X.deepCopy = function( src ){\r
-       function clone( src, objSrc, objCopy, n ) {\r
-               var ret, i, key;\r
-               if( !src ){ // 0, "", null, undefined, NaN, false\r
-                       return src;\r
-               } else\r
-               if( X.Type.isArray( src ) ){\r
-                       i = objSrc.indexOf( src );\r
-                       if( i !== -1 ) return objCopy[ i ];\r
-                       objSrc[ ++n ] = src;\r
-                       objCopy[ n ]  = ret = [];\r
-               } else\r
-               if( X.Type.isObject( src ) ){\r
-                       i = objSrc.indexOf( src );\r
-                       if( i !== -1 ) return objCopy[ i ];\r
-                       objSrc[ ++n ] = src;\r
-                       objCopy[ n ]  = ret = {};\r
-               } else {\r
-                       // string, number, true\r
-                       return src;\r
-               };\r
-               for( key in src ){\r
-                       ret[ key ] = clone( src[ key ], objSrc, objCopy, n );\r
-               };\r
-               return ret;\r
-       };                              \r
-       return clone( src, [], [], -1 );\r
-};\r
-\r
-\r
-\r
-\r
-X.copyArray = function( ary ){\r
-       var ret = [], i = ary.length;\r
-       if( !i ) return ret;\r
-       for( ; i; ){\r
-               ret[ --i ] = ary[ i ];\r
-       };\r
-       return ret;\r
-};\r
-       \r
-X.isEmptyObject = function( v ){\r
-       var p;\r
-//     if( v.length ) return false;\r
-       for( p in v ){\r
-               if( v.hasOwnProperty( p ) ) return false;\r
-       };\r
-       return true;\r
-};\r
-               \r
-X.matchTest = function( array1, array2 ){\r
-       var i = array2.length;\r
-       for( ; i; ){\r
-               if( array1.indexOf( array2[ --i ] ) === -1 ) return false;\r
-       };\r
-       return true;\r
-};\r
index 1f55c6f..41a5bc3 100644 (file)
@@ -1,13 +1,13 @@
 \r
-/*\r
- * UA\r
- */\r
-X.UA = (function( n, undefined ){\r
+// ------------------------------------------------------------------------- //\r
+// ------------ local variables -------------------------------------------- //\r
+// ------------------------------------------------------------------------- //\r
+var X_UA = (function( n, undefined ){\r
        var acme = {},\r
                dua  = n.userAgent,\r
                dav  = n.appVersion,\r
                tv   = parseFloat(dav),\r
-               i, j, v;\r
+               tridentToVer, i, j, v;\r
                \r
        console.log( ' userAgent  : ' + dua );\r
        console.log( '-' );\r
@@ -39,11 +39,18 @@ X.UA = (function( n, undefined ){
        // Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko\r
        if( document.all || dav.indexOf( 'Trident/' ) !== -1 ){\r
                acme.ActiveX  = !!window[ 'ActiveXObject' ];\r
-               acme.IE       = document.documentMode || parseFloat(dua.split('MSIE ')[1]) || parseFloat(dua.split('rv:')[1]) || parseFloat(dav.split('MSIE ')[1]) || 0;\r
+               acme._IE      = parseFloat(dua.split('MSIE ')[1]) || parseFloat(dua.split('rv:')[1]) || parseFloat(dav.split('MSIE ')[1]) || 0;\r
+               // IE11 の互換モードの dav にも Trident/7.0 が書かれているため互換モードか?判定ができる\r
+               // 互換モードでは Silverlight でエラーが出る?\r
+               acme.Trident  = parseFloat(dav.split('Trident/')[1]) || 0;\r
+               acme.IE       = document.documentMode || acme._IE;\r
+               tridentToVer  = acme.Trident ? ( acme.Trident + 4 | 0 ) : acme._IE;\r
+               acme.IECompat = /* acme.IE !== acme._IE || */ tridentToVer !== acme._IE && tridentToVer;\r
                acme.IE4      = acme.IE && acme.IE < 5;\r
                acme.IE5678   = 5 <= acme.IE && acme.IE < 9;\r
                acme.IE5      = 5 <= acme.IE && acme.IE < 5.5;\r
                acme.IE55     = 5.5 <= acme.IE && acme.IE < 6;\r
+               acme.IE5x     = acme.IE5 || acme.IE55;\r
                acme.IE6      = 6 <= acme.IE && acme.IE < 7;\r
                acme.IE7      = 7 <= acme.IE && acme.IE < 8;\r
                acme.IE8      = 8 <= acme.IE && acme.IE < 9;\r
@@ -230,14 +237,52 @@ X.UA = (function( n, undefined ){
                dua.indexOf( 'EBRD' ) !== -1;   \r
        \r
        return acme;\r
-})( navigator );\r
+})( navigator ),\r
+\r
+X_UA_DOM   = {},\r
+X_UA_EVENT = {},\r
+X_UA_HID   = {};\r
+X_UA.IECompat && alert( X_UA.IE + ' ' + X_UA._IE + ' Tri:' + X_UA.Trident );\r
 \r
-//alert(X.UA.Safari + ' ' + X.UA.WebKit + '\n\n' + navigator.userAgent + '\n\n' + navigator.appVersion + '\n\n' + navigator.platform );\r
+/*\r
+ * http://d.hatena.ne.jp/t-uchima/20051003/p1\r
+ * MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
+ */\r
+\r
+if( X_UA.IE4 && X_UA.IE < 5 ){ // ie4 & iemobi4 & macie4.x\r
+       X_UA_DOM.IE4   = true;\r
+       X_UA_EVENT.IE4 = true;\r
+} else\r
+if( X_UA.MacIE ){\r
+       X_UA_DOM.W3C  = true;\r
+       X_UA_EVENT.IE = true;\r
+} else\r
+if( document.getElementById ){\r
+       X_UA_DOM.W3C = true;\r
+       if( document.addEventListener ){\r
+               X_UA_EVENT.W3C = true;\r
+       } else\r
+       if( document.attachEvent ){\r
+               X_UA_EVENT.IE = true;\r
+       } else {\r
+               X_UA_EVENT.DOM0 = true;\r
+       };\r
+} else\r
+if( document.layers ){\r
+       \r
+} else {\r
+       \r
+};\r
+\r
+if( navigator.msPointerEnabled || navigator.pointerEnabled ) X_UA_HID.POINTER = true;\r
+if( !X_UA_HID.POINTER && window.ontouchstart !== undefined ) X_UA_HID.TOUCH   = true;\r
+\r
+//alert(X_UA.Safari + ' ' + X_UA.WebKit + '\n\n' + navigator.userAgent + '\n\n' + navigator.appVersion + '\n\n' + navigator.platform );\r
 \r
 // Safari 3.1 未満は開発コンソールがない!\r
 // http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html\r
 /*\r
-if( X.UA.Safari && X.UA.WebKit < 525.13 ){     \r
+if( X_UA.Safari && X_UA.WebKit < 525.13 ){     \r
        window.onerror = function( x, y, z ){\r
                var n = String.fromCharCode( 10 );\r
            alert('window.onerrorによるエラーの捕捉:' + n + x + n + y + 'の' + z + '行目付近です。');\r
@@ -245,20 +290,21 @@ if( X.UA.Safari && X.UA.WebKit < 525.13 ){
        };\r
 };*/\r
 \r
-if( X.UA.IE < 7 ){ // error @ NN7.2\r
+// ------------------------------------------------------------------------- //\r
+// --- interface ----------------------------------------------------------- //\r
+// ------------------------------------------------------------------------- //\r
+X.UA = X_UA;\r
+\r
+\r
+\r
+if( X_UA.IE < 7 ){ // error @ NN7.2\r
        // bonus: hotfix for IE6 SP1 (bug KB823727)\r
-       // multipleIEs IE6 standalone 版では不可\r
-       document.execCommand && document.execCommand( 'BackgroundImageCache', false, true );\r
+       // multipleIEs IE6 standalone 版では不可, IE5.5 は可,,,\r
+       X_UA.IE4 || X.UA.MacIE ?\r
+               document.execCommand && document.execCommand( 'BackgroundImageCache', false, true ) :\r
+               (function(){\r
+                       X_UA.IE_EXECOM_ERROR = eval( 'var a=1;try{document.execCommand&&document.execCommand("BackgroundImageCache",!1,!0)}catch(e){a=0}!a' );\r
+               })();\r
+       \r
+       X_UA.IE_EXECOM_ERROR && alert( 'document.execCommand error!' );\r
 };\r
-\r
-X.inObject = X.UA.IE < 5.5 ? // TODO JScript で判定\r
-       (function( name, obj ){\r
-               var p;\r
-               if( obj[ name ] ) return true;\r
-               name += ''; // 数値も許可\r
-               for( p in obj ){\r
-                       if( p === name ) return true;\r
-               };\r
-               return false;\r
-       }) :\r
-       new Function( 'a,b', 'return a in b' );// なぜか ie5 でもerror\r
index 7e880de..4fb5aaa 100644 (file)
@@ -3,15 +3,22 @@
 // ------------ local variables -------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
 \r
-var XCallback_USE_CLOSURE = false,\r
-\r
-       XCallback_LIVE_LIST   = [],\r
-       XCallback_POOL_LIST   = [],\r
-       \r
-       XCallback_THIS_FUNC   = 1,\r
-       XCallback_HANDLEEVENT = 2,\r
-       XCallback_FUNC_ONLY   = 3;\r
+var X_Callback_LIVE_LIST        = [],\r
+       X_Callback_POOL_LIST        = [],\r
+       X_Closure_COMMAND_BACK      = X_Callback_LIVE_LIST,\r
+       X_Closure_COMMAND_DROP      = X_Callback_POOL_LIST,\r
        \r
+       X_Callback_THIS_FUNC        = 1,\r
+       X_Callback_HANDLEEVENT      = 2,\r
+       X_Callback_FUNC_ONLY        = 3;\r
+\r
+       X_Callback_NONE             =  0,\r
+       X_Callback_UN_LISTEN        =  1,\r
+       X_Callback_STOP_PROPAGATION =  2,  // 上位階層への伝播のキャンセル\r
+       X_Callback_STOP_NOW         =  4 | 2,  // 同一階層のリスナーのキャンセル(上位へもキャンセル)\r
+       X_Callback_PREVENT_DEFAULT  =  8,  // 結果動作のキャンセル,\r
+       X_Callback_MONOPOLY         = 16,  // move event を独占する\r
+       X_Callback_SYS_CANCEL       = 32 | 4 | 2;\r
 \r
 /*\r
  * handleEvent という関数のメンバーを持つオブジェクト\r
@@ -27,212 +34,201 @@ var callbackHash;
 \r
 /*\r
  * \r
- * @typedef {funciton}\r
+ * @typedef {(funciton|{ _ : function, same : function, kill : function, a : (Array|undefined) })}\r
  */\r
 var functionHash;\r
 \r
 X.Callback = {\r
        \r
-       NONE             :  0,\r
-       UN_LISTEN        :  1,\r
-       STOP_PROPAGATION :  2,  // 上位階層への伝播のキャンセル\r
-       STOP_NOW         :  4 | 2,  // 同一階層のリスナーのキャンセル(上位へもキャンセル)\r
-       PREVENT_DEFAULT  :  8,  // 結果動作のキャンセル,\r
-       MONOPOLY         : 16,  // move event を独占する\r
-       SYS_CANCEL       : 32 | 4 | 2,\r
-       \r
-       _USE_CLOSURE     : false,\r
-       \r
-       _LIVE_LIST       : [],\r
-       _POOL_LIST       : [],\r
-       \r
-       _THIS_FUNC       : 1,\r
-       _HANDLEEVENT     : 2,\r
-       _FUNC_ONLY       : 3,\r
-       \r
-       create : function( arg1, arg2, arg3 /* [ listener || ( context + function ) || function ][ args... ] */ ){\r
-               var live = X.Callback._LIVE_LIST,\r
-                       hash = X.Callback._classifyCallbackArgs( arg1, arg2, arg3 ),\r
-                       f;\r
-               \r
-               if( !hash.k ) return hash;\r
-               \r
-               f = X.Callback._POOL_LIST.pop();\r
-               if( !f ){\r
-                       f = new Function( 'var a=arguments,f=a.callee;f.a=a;return f._(f)' ); // f.x=this;\r
-                       f[ 'kill' ] = X.Callback._kill;\r
-                       f[ 'same' ] = X.Callback._same;\r
-                       f._ = X.Callback._proxyCallback;\r
-               };\r
-               \r
-               live[ live.length ] = f;\r
-               \r
-               switch( f.k = hash.k ){\r
-                       case X.Callback._THIS_FUNC :\r
-                               f.x = hash.x;\r
-                               f.f = hash.f;\r
-                               break;\r
-                       case X.Callback._HANDLEEVENT :\r
-                               f.x = hash.x;\r
-                               break;\r
-                       case X.Callback._FUNC_ONLY :\r
-                               f.f = hash.f;\r
-                               break;\r
-               };\r
-\r
-               if( hash.s ) f.s = hash.s;\r
-               return f;\r
-       },\r
+       NONE             : X_Callback_NONE,\r
+       UN_LISTEN        : X_Callback_UN_LISTEN,\r
+       STOP_PROPAGATION : X_Callback_STOP_PROPAGATION,\r
+       STOP_NOW         : X_Callback_STOP_NOW,\r
+       PREVENT_DEFAULT  : X_Callback_PREVENT_DEFAULT,\r
+       MONOPOLY         : X_Callback_MONOPOLY,\r
        \r
-       _createClosure : function( obj ){\r
-               return function(){\r
-                       obj.a = arguments;\r
-                       return obj._( obj );\r
-               };\r
-       },\r
-       \r
-       _classifyCallbackArgs : function( arg1, arg2, arg3, alt_context ){\r
-               var obj;\r
-               \r
-               if( arg1 && X.Type.isFunction( arg2 ) ){\r
-                       obj  = { x : arg1, f : arg2, k : X.Callback._THIS_FUNC };\r
-               } else\r
-               if( arg1 && X.Type.isFunction( arg1[ 'handleEvent' ] ) ){\r
-                       obj  = { x : arg1, k : X.Callback._HANDLEEVENT };\r
-                       arg3 = arg2;\r
-               } else\r
-               if( X.Type.isFunction( arg1 ) ){\r
-                       arg3 = arg2;\r
-                       if( alt_context ){\r
-                               obj  = { x : alt_context, f : arg1, k : X.Callback._THIS_FUNC };\r
-                       } else {\r
-                               obj  = { f : arg1, k : X.Callback._FUNC_ONLY };\r
-                       };\r
-               } else\r
-               if( X.Type.isFunction( arg2 ) ){\r
-                       //console.log( 'X.Callback._classifyCallbackArgs : arg1 が ' + arg1 + 'です' ); ie4 で error\r
-                       if( alt_context ){\r
-                               obj  = { x : alt_context, f : arg2, k : X.Callback._THIS_FUNC };\r
-                       } else {\r
-                               obj  = { f : arg2, k : X.Callback._FUNC_ONLY };\r
-                       };\r
-               } else\r
-               if( alt_context ){\r
-                       obj  = { x : alt_context, k : X.Callback._HANDLEEVENT };\r
-                       arg3 = arg1;\r
-               } else {\r
-                       console.log( '不正 ' + arg1 );\r
-                       console.dir( arg1 );\r
-                       return;\r
-               };\r
-               \r
-               if( X.Type.isArray( arg3 )){\r
-                       obj.s = arg3;\r
-               };\r
-               return ( obj.x || obj.s ) ? obj : arg1;\r
-       },\r
-\r
-       _proxyCallback : function( xfunc ){\r
-               var args    = xfunc.a || [],\r
-                       thisObj = xfunc.x,\r
-                       func    = xfunc.f,\r
-                       supp    = xfunc.s,\r
-                       temp, ret;\r
-               \r
-               delete xfunc.a;         \r
-               \r
-               if( supp && supp.length ){\r
-                       temp = [];\r
-                       args.length &&\r
-                               (\r
-                                       args.length === 1 ?\r
-                                               ( temp[ 0 ] = args[ 0 ] ) :\r
-                                               temp.push.apply( temp, args )\r
-                               );\r
-                       supp.length === 1 ?\r
-                               ( temp[ temp.length ] = supp[ 0 ] ) :\r
-                               temp.push.apply( temp, supp );\r
-                       args = temp;\r
-               };\r
-               \r
-               switch( xfunc.k ){\r
-\r
-                       case X.Callback._THIS_FUNC :\r
-                               return args.length === 0 ? func.call( thisObj ) : func.apply( thisObj, args );\r
-                               \r
-                       case X.Callback._HANDLEEVENT :\r
-                               temp = thisObj[ 'handleEvent' ];\r
-                               if( X.Type.isFunction( temp ) ){\r
-                                       return args.length === 0 ? thisObj[ 'handleEvent' ]() :\r
-                                                  args.length === 1 ? thisObj[ 'handleEvent' ]( args[ 0 ] ) : temp.apply( thisObj, args );\r
-                               };\r
-                               break;\r
-                               /*\r
-                               if( temp !== func && X.Type.isFunction( temp ) ){\r
-                                       return args.length === 0 ? thisObj[ 'handleEvent' ]() : temp.apply( thisObj, args );\r
-                               } else\r
-                               if( X.Type.isFunction( thisObj ) ){\r
-                                       return args.length === 0 ? thisObj.call( thisObj ) : thisObj.apply( thisObj, args );\r
-                               };\r
-                               return args.length === 0 ? func.call( thisObj ) : func.apply( thisObj, args );*/\r
-                                                       \r
-                       case X.Callback._FUNC_ONLY :\r
-                               return args.length === 0 ?\r
-                                               func() :\r
-                                       args.length === 1 ?\r
-                                               func( args[ 0 ] ) :\r
-                                               func.apply( null, args );\r
-               };\r
-               return X.Callback.NONE;\r
-       },\r
-       \r
-       _kill : function(){\r
-               X.Callback._correct( this );\r
-       },\r
-       _same : function( arg1, arg2, arg3 ){\r
-               var hash;\r
-               \r
-               if( arg1 && arg1[ 'kill' ] === X.Callback._kill ) return this === arg1;\r
-               \r
-               hash = X.Callback._classifyCallbackArgs( arg1, arg2, arg3 );\r
-               \r
-               return hash && this.k === hash.k && this.x === hash.x && this.f === hash.f && this.s === hash.s;\r
-       },\r
-       _correct : function( f ){\r
-               var i = X.Callback._LIVE_LIST.indexOf( f );\r
-               //delete f._;\r
-               delete f.k;\r
-               if( f.x ) delete f.x;\r
-               if( f.f ) delete f.f;\r
-               if( f.s ) delete f.s;\r
-               if( i === -1 ) return;\r
-               X.Callback._LIVE_LIST.splice( i, 1 );\r
-               X.Callback._POOL_LIST.push( f );\r
-       },\r
+       create : X_Callback_create,\r
        \r
        sys_monitor : function(){\r
                return {\r
-                       'Live callback' : X.Callback._LIVE_LIST.length,\r
-                       'Pool callback' : X.Callback._POOL_LIST.length\r
+                       'Live callback' : X_Callback_LIVE_LIST.length,\r
+                       'Pool callback' : X_Callback_POOL_LIST.length\r
                };\r
        },\r
+       \r
        sys_gc : function(){\r
-               var list = X.Callback._POOL_LIST,\r
+               var list = X_Callback_POOL_LIST,\r
                        f;\r
                while( 0 < list.length ){\r
                        f = list.shift();\r
-                       X.Callback._correct( f );\r
-                       delete f[ '_' ];\r
+                       X_Callback_correct( f );\r
                        delete f[ 'kill' ];\r
                        delete f[ 'same' ];\r
                };\r
        }\r
 };\r
 \r
+X_TEMP.onSystemReady.push( X_Callback_handleSystemEvent );\r
+\r
 // ------------------------------------------------------------------------- //\r
 // --- implements ---------------------------------------------------------- //\r
 // ------------------------------------------------------------------------- //\r
 \r
+function X_Callback_handleSystemEvent( e ){\r
+       switch( e ){\r
+               case '':\r
+       };\r
+};\r
+\r
+function X_Callback_create( thisObject, opt_callback, opt_args /* [ listener || ( context + function ) || function ][ args... ] */ ){\r
+       var obj = X_Callback_classifyCallbackArgs( thisObject, opt_callback, opt_args ),\r
+               l, ret, _obj;\r
+       if( !obj.k ) return obj;\r
+       if( l = X_Callback_POOL_LIST.length ){\r
+               ret    = X_Callback_POOL_LIST[ l - 1 ]; --X_Callback_POOL_LIST.length; // ret = X_Callback_POOL_LIST.pop();\r
+               _obj   = ret( X_Closure_COMMAND_BACK );\r
+               _obj.k = obj.k;\r
+               _obj.f = obj.f;\r
+               _obj.x = obj.x;\r
+               _obj.s = obj.s;\r
+       } else {\r
+               ret = X_Closure_actualClosure( obj );\r
+               ret.kill = X_Callback_kill;\r
+               ret.same = X_Callback_same;\r
+       };\r
+       X_Callback_LIVE_LIST[ X_Callback_LIVE_LIST.length ] = ret;\r
+       return ret;     \r
+};\r
+\r
+function X_Closure_actualClosure( obj ){\r
+       return function(){\r
+               if( arguments[ 0 ] === X_Closure_COMMAND_BACK ) return obj;\r
+               if( arguments[ 0 ] !== X_Closure_COMMAND_DROP ) return X_Callback_proxyCallback( obj, arguments );\r
+       };\r
+};\r
+\r
+function X_Callback_classifyCallbackArgs( arg1, arg2, arg3, alt_context ){\r
+       var obj;\r
+       \r
+       if( arg1 && X.Type.isFunction( arg2 ) ){\r
+               obj  = { x : arg1, f : arg2, k : X_Callback_THIS_FUNC };\r
+       } else\r
+       if( arg1 && X.Type.isFunction( arg1[ 'handleEvent' ] ) ){\r
+               obj  = { x : arg1, k : X_Callback_HANDLEEVENT };\r
+               arg3 = arg2;\r
+       } else\r
+       if( X.Type.isFunction( arg1 ) ){\r
+               arg3 = arg2;\r
+               if( alt_context ){\r
+                       obj  = { x : alt_context, f : arg1, k : X_Callback_THIS_FUNC };\r
+               } else {\r
+                       obj  = { f : arg1, k : X_Callback_FUNC_ONLY };\r
+               };\r
+       } else\r
+       if( X.Type.isFunction( arg2 ) ){\r
+               //console.log( 'X_Callback_classifyCallbackArgs : arg1 が ' + arg1 + 'です' ); ie4 で error\r
+               if( alt_context ){\r
+                       obj  = { x : alt_context, f : arg2, k : X_Callback_THIS_FUNC };\r
+               } else {\r
+                       obj  = { f : arg2, k : X_Callback_FUNC_ONLY };\r
+               };\r
+       } else\r
+       if( alt_context ){\r
+               obj  = { x : alt_context, k : X_Callback_HANDLEEVENT };\r
+               arg3 = arg1;\r
+       } else {\r
+               console.log( '不正 ' + arg1 );\r
+               console.dir( arg1 );\r
+               return;\r
+       };\r
+       \r
+       if( X.Type.isArray( arg3 )){\r
+               obj.s = arg3;\r
+       };\r
+       return ( obj.x || obj.s ) ? obj : arg1;\r
+};\r
+\r
+function X_Callback_proxyCallback( xfunc, _args ){\r
+       var args    = _args || [],\r
+               thisObj = xfunc.x,\r
+               func    = xfunc.f,\r
+               supp    = xfunc.s,\r
+               temp, ret;      \r
+       \r
+       if( supp && supp.length ){\r
+               temp = [];\r
+               args.length &&\r
+                       (\r
+                               args.length === 1 ?\r
+                                       ( temp[ 0 ] = args[ 0 ] ) :\r
+                                       temp.push.apply( temp, args )\r
+                       );\r
+               supp.length === 1 ?\r
+                       ( temp[ temp.length ] = supp[ 0 ] ) :\r
+                       temp.push.apply( temp, supp );\r
+               args = temp;\r
+       };\r
+       \r
+       switch( xfunc.k ){\r
+\r
+               case X_Callback_THIS_FUNC :\r
+                       return args.length === 0 ? func.call( thisObj ) : func.apply( thisObj, args );\r
+                       \r
+               case X_Callback_HANDLEEVENT :\r
+                       temp = thisObj[ 'handleEvent' ];\r
+                       if( X.Type.isFunction( temp ) ){\r
+                               return args.length === 0 ? thisObj[ 'handleEvent' ]() :\r
+                                          args.length === 1 ? thisObj[ 'handleEvent' ]( args[ 0 ] ) : temp.apply( thisObj, args );\r
+                       };\r
+                       break;\r
+                       /*\r
+                       if( temp !== func && X.Type.isFunction( temp ) ){\r
+                               return args.length === 0 ? thisObj[ 'handleEvent' ]() : temp.apply( thisObj, args );\r
+                       } else\r
+                       if( X.Type.isFunction( thisObj ) ){\r
+                               return args.length === 0 ? thisObj.call( thisObj ) : thisObj.apply( thisObj, args );\r
+                       };\r
+                       return args.length === 0 ? func.call( thisObj ) : func.apply( thisObj, args );*/\r
+                                               \r
+               case X_Callback_FUNC_ONLY :\r
+                       return args.length === 0 ?\r
+                                       func() :\r
+                               args.length === 1 ?\r
+                                       func( args[ 0 ] ) :\r
+                                       func.apply( null, args );\r
+       };\r
+       return X_Callback_NONE;\r
+};\r
+\r
+function X_Callback_same( arg1, arg2, arg3 ){\r
+       var hash;\r
+       \r
+       if( arg1 && arg1[ 'kill' ] === X_Callback_kill ) return this === arg1;\r
+       \r
+       hash = X_Callback_classifyCallbackArgs( arg1, arg2, arg3 );\r
+       \r
+       return hash && this.k === hash.k && this.x === hash.x && this.f === hash.f && this.s === hash.s;\r
+};\r
+\r
+function X_Callback_kill(){\r
+       X_Callback_correct( this );\r
+};\r
+\r
+function X_Callback_correct( f ){\r
+       var i = X_Callback_LIVE_LIST.indexOf( f ),\r
+               obj;\r
+       if( i !== -1 ){\r
+               X_Callback_LIVE_LIST.splice( i, 1 );\r
+               X_Callback_POOL_LIST[ X_Callback_POOL_LIST.length ] = f;\r
+               obj = f( X_Closure_COMMAND_BACK );\r
+               delete obj.k;\r
+               if( obj.f ) delete obj.f;\r
+               if( obj.x ) delete obj.x;\r
+               if( obj.s ) delete obj.s;\r
+               return true;\r
+       };\r
+       return false;\r
+};\r
 \r
 \r
 \r
index db37581..86b1e23 100644 (file)
@@ -38,7 +38,7 @@ X.Class = {
        SINGLETON    : 32, // 未実装\r
        \r
        create : function( /* displayName, classSetting, opt_PrivateClass, props */ ){\r
-               var args        = X.copyArray( arguments ),\r
+               var args        = X_Object_cloneArray( arguments ),\r
                        displayName = args[ 0 ],\r
                        classSetting,\r
                        opt_pool, opt_abstract, opt_final, opt_private,\r
@@ -194,7 +194,7 @@ function X_Class_getClassDef( KlassOrInstance ){
 };\r
 \r
 function X_Class_newPrivate( /* instance, args */ ){\r
-       var args         = X.copyArray( arguments ),\r
+       var args         = X_Object_cloneArray( arguments ),\r
                user         = args.shift(),\r
                def          = X_Class_getClassDef( user ),\r
                privateClass = def.privateClass,\r
@@ -262,7 +262,7 @@ function X_Class_subClassOf( klass ){
  * http://d.hatena.ne.jp/m-hiyama/20051018/1129605002\r
  */\r
 function X_Class_inherits( /* displayName, classSetting, opt_PrivateClass, props */ ){\r
-       var args        = X.copyArray( arguments ),\r
+       var args        = X_Object_cloneArray( arguments ),\r
                params      = [],\r
                Super       = this,\r
                superDef    = X_Class_getClassDef( Super ),\r
index 426a05d..970b3f6 100644 (file)
 // ------------------------------------------------------------------------- //\r
 var X_EventDispatcher_once       = false,\r
        X_EventDispatcher_needsIndex = false,\r
-       X_EventDispatcher_temp       = {},\r
        \r
-       X_EventDispatcher_safariPreventDefault = false; //  // Safari3-\r
-\r
-if( X.UA.MacIE ){\r
-       X_EventDispatcher_temp.DOM_W3C    = true;\r
-       X_EventDispatcher_temp.EVENT_DOM0 = true;\r
-} else\r
-if( X.UA.IE4 ){ // ie4 & iemobi4\r
-       X_EventDispatcher_temp.DOM_IE4    = true;\r
-       X_EventDispatcher_temp.EVENT_DOM0 = true;\r
-} else\r
-if( document.getElementById ){\r
-       X_EventDispatcher_temp.DOM_W3C = true;\r
-       if( document.addEventListener ){\r
-               X_EventDispatcher_temp.EVENT_W3C = true;\r
-       } else\r
-       if( document.attachEvent ){\r
-               X_EventDispatcher_temp.EVENT_IE = true;\r
-       } else {\r
-               X_EventDispatcher_temp.EVENT_DOM0 = true;\r
-       };\r
-} else\r
-if( document.all ){\r
-       X_EventDispatcher_temp.DOM_IE4    = true;\r
-       X_EventDispatcher_temp.EVENT_DOM0 = true;\r
-} else\r
-if( document.layers ){\r
-       \r
-} else {\r
-       \r
-};\r
+       X_EventDispatcher_safariPreventDefault = false; // Safari3-\r
 \r
 // ------------------------------------------------------------------------- //\r
 // --- interface ----------------------------------------------------------- //\r
@@ -211,7 +181,7 @@ X.EventDispatcher =
                                if( opt_arg1.k ){\r
                                        hash = opt_arg1;\r
                                } else {\r
-                                       hash = X.Callback._classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
+                                       hash = X_Callback_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
                                };\r
                                \r
                                if( ( unlistens = this._unlistens ) && ( unlistens = unlistens[ opt_type ] ) ){\r
@@ -252,9 +222,9 @@ X.EventDispatcher =
  */\r
 function X_EventDispatcher_dispatch( e ){\r
        var list  = this[ '_listeners' ],\r
-               ret   = X.Callback.NONE,\r
+               ret   = X_Callback_NONE,\r
                type  = e[ 'type' ],\r
-               unlistens, i, l, f, r, sysOnly;\r
+               unlistens, i, l, args, f, r, sysOnly;\r
        \r
        if( !list || !( list = list[ type || e ] ) ) return ret;\r
        \r
@@ -279,15 +249,14 @@ function X_EventDispatcher_dispatch( e ){
                };\r
                if( unlistens && unlistens.indexOf( f ) !== -1 ) continue;\r
                \r
-               r = X.Callback.NONE;\r
+               r = X_Callback_NONE;\r
                if( f.k ){\r
-                       f.a = [ e ];\r
-                       r = X.Callback._proxyCallback( f );\r
+                       r = X_Callback_proxyCallback( f, args || ( args = [ e ] ) );\r
                } else {\r
                        r = f.call( this, e );\r
                };\r
                \r
-               if( f.once || r & X.Callback.UN_LISTEN ){\r
+               if( f.once || r & X_Callback_UN_LISTEN ){\r
                        // dispatch 中に unlisten が作られることがある\r
                        if( !unlistens ){\r
                                unlistens = this._unlistens || ( this._unlistens = {} );\r
@@ -372,7 +341,7 @@ function X_EventDispatcher_listen( type, opt_arg1, opt_arg2, opt_arg3 ){
        \r
        add && X_EventDispatcher_actualAddEvent( this, type, raw, list );\r
        \r
-       f = X.Callback._classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
+       f = X_Callback_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
        list[ list.length ] = f;\r
        f.once = X_EventDispatcher_once;\r
        \r
@@ -396,6 +365,9 @@ function X_EventDispatcher_unlisten( opt_type, opt_arg1, opt_arg2, opt_arg3 ){
        if( X.Type.isArray( opt_type ) ){\r
                for( i = opt_type.length; i; ){\r
                        this.unlisten( opt_type[ --i ], opt_arg1, opt_arg2, opt_arg3 );\r
+                       if( !opt_type[ i ] ){\r
+                               alert( '不正な unlisten Array' );\r
+                       };\r
                };\r
                return this;\r
        };\r
@@ -443,12 +415,12 @@ function X_EventDispatcher_unlisten( opt_type, opt_arg1, opt_arg2, opt_arg3 ){
                        ( this._unlistens[ opt_type ] = [ f ] );\r
        } else {\r
                delete f.once;\r
-               // f.kill === X.Callback._kill && f.kill();\r
+               // f.kill === X_Callback_kill && f.kill();\r
                _list.splice( i, 1 );\r
                if( !_list.length ){\r
                        raw  = this._rawObject || this._ie4getRawNode && this._ie4getRawNode();\r
                        delete list[ opt_type ];\r
-                       if( empty = X.isEmptyObject( list ) ) delete this._listeners;\r
+                       if( empty = X_Object_isEmpty( list ) ) delete this._listeners;\r
                        if( raw && '' + parseFloat( opt_type ) !== '' + opt_type ){ // 数字イベントの除外\r
                                X_EventDispatcher_actualRemoveEvent( this, opt_type, raw, _list, !empty );\r
                        };\r
@@ -462,7 +434,7 @@ var X_EventDispatcher_actualAddEvent =
        // Days on the Moon DOM Events とブラウザの実装 \r
        // http://nanto.asablo.jp/blog/2007/03/23/1339502\r
        // Safari 2 では関数オブジェクトしか EventListener として使えませんが、Safari のナイトリービルドでは handleEvent メソッドを持つオブジェクトも EventListener として使えるようです。\r
-       X_EventDispatcher_temp.EVENT_W3C /* && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) */ ? // Safari3-\r
+       X_UA_EVENT.W3C /* && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) */ ? // Safari3-\r
                (function( that, type, raw, list ){\r
                        var i;\r
                        \r
@@ -473,10 +445,10 @@ var X_EventDispatcher_actualAddEvent =
                                        X_EventDispatcher_actualAddEvent( that, type[ --i ], raw, list );\r
                                };\r
                        } else {\r
-                               that._handleEvent || ( that._handleEvent = X.Callback.create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                               that._handleEvent || ( that._handleEvent = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                                \r
                                if( that._isSilverlight ){\r
-                                       list.slcallback = X.Callback.create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                       list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                } else\r
                                if( raw.addEventListener ){\r
@@ -487,7 +459,7 @@ var X_EventDispatcher_actualAddEvent =
                                };                              \r
                        };\r
                }) :\r
-       X_EventDispatcher_temp.EVENT_IE ?\r
+       X_UA_EVENT.IE ?\r
                (function( that, type, raw, list ){\r
                        var i;\r
                        //if( type === 'load' && that._tag && X.Dom.Event._LOAD_FIX_TAGS[ that._tag ] ){\r
@@ -495,7 +467,7 @@ var X_EventDispatcher_actualAddEvent =
                        //};\r
                        if( that._isXHR ){\r
                                // ie8- の XHR は window.event が更新されないため, eventType 毎に callback を指定する\r
-                               raw[ 'on' + type ] = X.Callback.create( that, X_EventDispatcher_dispatch, [ type ] );\r
+                               raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                        } else {\r
                                type = X.Dom.Event.Rename[ type ] || type;\r
                                \r
@@ -504,10 +476,10 @@ var X_EventDispatcher_actualAddEvent =
                                                X_EventDispatcher_actualAddEvent( that, type[ --i ], raw, list );\r
                                        };\r
                                } else{\r
-                                       that._handleEvent || ( that._handleEvent = X.Callback.create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                                       that._handleEvent || ( that._handleEvent = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                                        \r
                                        if( that._isSilverlight ){\r
-                                               list.slcallback = X.Callback.create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                               list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                                list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                        } else\r
                                        if( raw.attachEvent ){\r
@@ -527,10 +499,10 @@ var X_EventDispatcher_actualAddEvent =
                                        X_EventDispatcher_actualAddEvent( that, type[ --i ], raw, list );\r
                                };\r
                        } else {\r
-                               that._handleEvent || ( that._handleEvent = X.Callback.create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                               that._handleEvent || ( that._handleEvent = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                                \r
                                if( that._isSilverlight ){\r
-                                       list.slcallback = X.Callback.create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                       list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                } else {\r
                                        raw[ 'on' + type ] = that._handleEvent;\r
@@ -547,7 +519,7 @@ function X_EventDispatcher_sliverLightDispatch( sender, e, type ){
 };\r
 \r
 var X_EventDispatcher_actualRemoveEvent =\r
-       X_EventDispatcher_temp.EVENT_W3C /*&& ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 )*/ ? // Safari3-\r
+       X_UA_EVENT.W3C /*&& ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 )*/ ? // Safari3-\r
                (function( that, type, raw, list, skip ){\r
                        type = X.Dom.Event.Rename[ type ] || type;\r
                        \r
@@ -559,7 +531,7 @@ var X_EventDispatcher_actualRemoveEvent =
                                \r
                                if( that._isSilverlight ){\r
                                        raw.RemoveEventListener( type, list.sltoken ); // token\r
-                                       X.Callback._correct( list.slcallback );\r
+                                       X_Callback_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                } else {\r
@@ -569,20 +541,20 @@ var X_EventDispatcher_actualRemoveEvent =
                                                raw[ 'on' + type ] = null;\r
                                        };\r
                                        if( !skip ){\r
-                                               X.Callback._correct( that._handleEvent );\r
+                                               X_Callback_correct( that._handleEvent );\r
                                                delete that._handleEvent;\r
                                        };                                      \r
                                };\r
                        };\r
                }) :\r
-       X_EventDispatcher_temp.EVENT_IE ?\r
+       X_UA_EVENT.IE ?\r
                (function( that, type, raw, list, skip ){\r
                        var i;\r
                        //if( type === 'load' && that._tag && X.Dom.Event._LOAD_FIX_TAGS[ that._tag ] ){\r
                        //      type = 'readystatechange';\r
                        //};\r
                        if( that._isXHR ){\r
-                               X.Callback._correct( raw[ 'on' + type ] );\r
+                               X_Callback_correct( raw[ 'on' + type ] );\r
                                raw[ 'on' + type ] = X.emptyFunction;\r
                                raw[ 'on' + type ] = '';\r
                        } else {\r
@@ -596,7 +568,7 @@ var X_EventDispatcher_actualRemoveEvent =
                                        \r
                                        if( that._isSilverlight ){\r
                                                raw.RemoveEventListener( type, list.sltoken ); // token\r
-                                               X.Callback._correct( list.slcallback );\r
+                                               X_Callback_correct( list.slcallback );\r
                                                delete list.sltoken;\r
                                                delete list.slcallback;\r
                                        } else {\r
@@ -608,7 +580,7 @@ var X_EventDispatcher_actualRemoveEvent =
                                                };\r
                                                \r
                                                if( !skip ){\r
-                                                       X.Callback._correct( that._handleEvent );\r
+                                                       X_Callback_correct( that._handleEvent );\r
                                                        delete that._handleEvent;\r
                                                };                                              \r
                                        };\r
@@ -626,7 +598,7 @@ var X_EventDispatcher_actualRemoveEvent =
                                \r
                                if( that._isSilverlight ){\r
                                        raw.RemoveEventListener( type, list.sltoken ); // token\r
-                                       X.Callback._correct( list.slcallback );\r
+                                       X_Callback_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                } else {\r
@@ -634,7 +606,7 @@ var X_EventDispatcher_actualRemoveEvent =
                                        raw[ 'on' + type ] = '';\r
                                        \r
                                        if( !skip ){\r
-                                               X.Callback._correct( that._handleEvent );\r
+                                               X_Callback_correct( that._handleEvent );\r
                                                delete that._handleEvent;\r
                                        };                                      \r
                                };\r
@@ -646,7 +618,7 @@ var X_EventDispatcher_actualRemoveEvent =
 // Is this in regard to the Safari 1.x preventDefault bug on click/dblclick?\r
 // https://groups.google.com/forum/#!msg/comp.lang.javascript/uYEuCHjHxnw/yKoHtZJPa1QJ\r
 var X_EventDispatcher_actualHandleEvent =\r
-       X.UA.IE4 || X_EventDispatcher_temp.EVENT_IE ? // ie45678 EVENT_IE & EVENT_DOM0 for ie4\r
+       X_UA_EVENT.IE4 || X_UA_EVENT.IE ? // ie45678 EVENT_IE & EVENT_DOM0 for ie4\r
                (function(){\r
                        var ret;\r
                        \r
@@ -664,10 +636,10 @@ var X_EventDispatcher_actualHandleEvent =
                                return event.returnValue = false;\r
                        };\r
                }) :\r
-       //X.Dom.EVENT_W3C & EVENT_DOM0\r
+       //X_UA_EVENT.W3C & X_UA_EVENT.DOM0\r
                (function( e ){\r
                        var ev  = new X.Dom.Event( e, this ),\r
-                               ret = X.Callback.NONE,\r
+                               ret = X_Callback_NONE,\r
                                i, l;\r
                        \r
                        // touch event -> pointer\r
index 0ab0bd4..0725037 100644 (file)
@@ -83,7 +83,7 @@ X.Timer = {
                        opt_count = 0;\r
                };\r
                \r
-               hash = X.Callback._classifyCallbackArgs( args1, args2, args3 );\r
+               hash = X_Callback_classifyCallbackArgs( args1, args2, args3 );\r
                if( !hash ) return -1; // dev only\r
                \r
                if( !hash.k ) hash = { f : hash };\r
@@ -127,14 +127,14 @@ X.Timer = {
                        var i = X_Timer_REQ_FRAME_LIST.length,\r
                                f;\r
                        i === 0 && ( X_Timer_requestID = X_Timer_REQ_ANIME_FRAME( X_Timer_onEnterFrame ) );\r
-                       f = X_Timer_REQ_FRAME_LIST[ i ] = X.Callback._classifyCallbackArgs( args1, args2, args3 );\r
+                       f = X_Timer_REQ_FRAME_LIST[ i ] = X_Callback_classifyCallbackArgs( args1, args2, args3 );\r
                        return f.uid = ++X_Timer_uid;\r
                }) :\r
                (function( args1, args2, args3 ){\r
                        var i = X_Timer_REQ_FRAME_LIST.length,\r
                                f;\r
                        i === 0 && ( X_Timer_requestID = X.Timer.add( 0, 1, X_Timer_onEnterFrame ) );\r
-                       f = X_Timer_REQ_FRAME_LIST[ i ] = X.Callback._classifyCallbackArgs( args1, args2, args3 );\r
+                       f = X_Timer_REQ_FRAME_LIST[ i ] = X_Callback_classifyCallbackArgs( args1, args2, args3 );\r
                        return f.uid = ++X_Timer_uid;\r
                }),\r
        \r
@@ -217,8 +217,8 @@ function X_Timer_onTimeout(){
                c = q.count;\r
                \r
                if( q.k ){\r
-                       q.a = [];\r
-                       r = X.Callback._proxyCallback( q );\r
+                       //q.a = [];\r
+                       r = X_Callback_proxyCallback( q, [] );\r
                } else {\r
                        r = q.f();\r
                };\r
@@ -231,7 +231,7 @@ function X_Timer_onTimeout(){
                        heavy = true;\r
                };\r
                \r
-               if( r & X.Callback.UN_LISTEN || c === 1 ){\r
+               if( r & X_Callback_UN_LISTEN || c === 1 ){\r
                        list.splice( i, 1 );\r
                        --i;\r
                        --l;\r
@@ -291,7 +291,7 @@ if( X.UA.iOS ){
 function X_Timer_onEnterFrame( time ){\r
        var list = X_Timer_REQ_FRAME_LIST,\r
                l    = list.length,\r
-               i    = 0, q, uid;\r
+               i    = 0, q, uid, args;\r
 \r
        time = time || X.getTime();\r
        X_Timer_busyOnFrame = true;\r
@@ -302,8 +302,7 @@ function X_Timer_onEnterFrame( time ){
        if( X_Timer_removal && X_Timer_removal[ q.uid ] ) continue;\r
        \r
                if( q.k ){\r
-                       q.a = [ time ];\r
-                       X.Callback._proxyCallback( q );\r
+                       X_Callback_proxyCallback( q, args || ( args = [ time ] ) );\r
                } else {\r
                        q( time );\r
                };\r
index e5b2ebf..22a96cf 100644 (file)
@@ -1,11 +1,9 @@
 \r
-\r
-\r
 X.Dom = X.Class._override(\r
        new X.EventDispatcher(),\r
        {\r
                readyState   : -1,\r
-               active       : !!window.parent || !!document.activeElement, // frameに読み込まれた場合のieのerror回避\r
+               active       : !!window.parent || !!document.activeElement, // parent は frameに読み込まれた場合のieのerror回避\r
                _root        : null,\r
 \r
                _lock        : false,\r
@@ -29,7 +27,7 @@ X.Dom = X.Class._override(
  * \r
  * http://sssslide.com/www.slideshare.net/hiroakiwakamatsu/javascript-14514208\r
  * 1. 傾き時の画面サイズ取得ー 対処方法の例\r
- * (1)ー タイマーを使って、画面サイズ取得の タイミングを少しだけ遅延させる\r
+ * (1)ー? タイマーを使って、画面サイズ取得の タイミングを少しだけ遅延させる\r
  * window.onorientationchange = function() { setTimeout(function() { alert("W: " + window.innerWidth + ", H: " + window.innerHeight); }, 200); }\r
  * 横に傾けた時、正常に横向け時の 幅と高さが取得できている ただし、端末によってはうまく取得できな い場合がある(Galaxy S IIIとか・・・) 7 \r
  * \r
@@ -87,7 +85,7 @@ X.Dom = X.Class._override(
 \r
                _init : function(){\r
                        var s, size, html, head, body;\r
-                       if( X.Dom.Event.DOM_PRE_INIT <= X.Dom.readyState ) return X.Callback.UN_LISTEN;\r
+                       if( X.Dom.Event.DOM_PRE_INIT <= X.Dom.readyState ) return X_Callback_UN_LISTEN;\r
                        \r
                        console.log( 'X.Dom._init()' );\r
                        \r
@@ -102,16 +100,16 @@ X.Dom = X.Class._override(
                        html = Node._html =\r
                                document.documentElement ?\r
                                        new Node( document.documentElement ) :\r
-                               X.Dom.DOM_W3C ?\r
+                               X_UA_DOM.W3C ?\r
                                        new Node( document.getElementsByTagName( 'html' )[ 0 ] ) :\r
-                               X.Dom.DOM_IE4 ?\r
+                               X_UA_DOM.IE4 ?\r
                                        new Node( document.all.tags( 'html' )[ 0 ] ) :\r
                                        null;\r
                \r
                        head = Node._head =\r
-                               X.Dom.DOM_W3C ?\r
+                               X_UA_DOM.W3C ?\r
                                        new Node( document.getElementsByTagName( 'head' )[ 0 ] ) :\r
-                               X.Dom.DOM_IE4 ?\r
+                               X_UA_DOM.IE4 ?\r
                                        new Node( document.all.tags( 'head' )[ 0 ] ) :\r
                                        null;\r
                \r
@@ -131,7 +129,7 @@ X.Dom = X.Class._override(
 \r
                        X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT, function(){\r
                                X.Dom.readyState = X.Dom.Event.DOM_BUILDER_COMPLETE;\r
-                               !X.Dom._useBuilder && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.DOM_BUILDER_COMPLETE } );\r
+                               !X_TEMP.X_Dom_useBuilder && X.Dom.asyncDispatch( 0, { type : X.Dom.Event.DOM_BUILDER_COMPLETE } );\r
                        } );\r
                        \r
                        X.Dom.listenOnce( X.Dom.Event.DOM_BUILDER_COMPLETE, function(){\r
@@ -188,7 +186,7 @@ X.Dom = X.Class._override(
                                                        .listen( 'blur', X.Dom );\r
                        };\r
 \r
-                       return X.Callback.UN_LISTEN;\r
+                       return X_Callback_UN_LISTEN;\r
                },\r
 \r
                handleEvent : function( e ){\r
@@ -318,123 +316,6 @@ if( !( X.UA.IE < 9 || X.UA.iOS ) ){
        };\r
 };\r
 \r
-/*\r
- * http://d.hatena.ne.jp/t-uchima/20051003/p1\r
- * MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
- */\r
-if( X.UA.MacIE ){\r
-       X.Dom.DOM_W3C    = true;\r
-       X.Dom.EVENT_DOM0 = true;\r
-} else\r
-if( X.UA.IE4 ){ // ie4 & iemobi4\r
-       X.Dom.DOM_IE4    = true;\r
-       X.Dom.EVENT_DOM0 = true;\r
-} else\r
-if( document.getElementById ){\r
-       X.Dom.DOM_W3C = true;\r
-       if( document.addEventListener ){\r
-               X.Dom.EVENT_W3C = true;\r
-       } else\r
-       if( document.attachEvent ){\r
-               X.Dom.EVENT_IE = true;\r
-       } else {\r
-               X.Dom.EVENT_DOM0 = true;\r
-       };\r
-} else\r
-if( document.all ){\r
-       X.Dom.DOM_IE4    = true;\r
-       X.Dom.EVENT_DOM0 = true;\r
-} else\r
-if( document.layers ){\r
-       \r
-} else {\r
-       \r
-};\r
-\r
-X.Dom.EVENT_POINTER = navigator.msPointerEnabled || navigator.pointerEnabled;\r
-X.Dom.EVENT_TOUCH   = !X.Dom.EVENT_POINTER && window.ontouchstart !== undefined;\r
-\r
-\r
-\r
-X.Dom.CRLF = String.fromCharCode( 13 ) + String.fromCharCode( 10 );\r
-               \r
-X.Dom.cleanupWhiteSpace = function( text ){\r
-       var _ = ' ', __ = '  ', CRLF = X.Dom.CRLF;\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( '\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
-       while( text.indexOf( __ ) !== -1 ){\r
-               text = text.split( __ ).join( _ );\r
-       };\r
-       return text;\r
-};\r
-\r
-X.Dom.whiteSpaceToTag = function( text ){\r
-    if( text == null ) 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
-       .split( '\n\r' ).join( '<br>' )\r
-       .split( '\r' ).join( '<br>' )\r
-       .split( '\n' ).join( '<br>' )\r
-       .split( '\t' ).join( '&nbsp;&nbsp;&nbsp;&nbsp;' )\r
-       .split( '\f' ).join( '' )\r
-       .split( '\b' ).join( '' );\r
-};\r
-\r
-X.Dom.chrReferanceTo = function( str ){\r
-    if( str == null ) return '';\r
-    return str.toString()\r
-       .split( '&amp;' ).join( '&' )\r
-       .split( '&lt;' ).join( '<' )\r
-       .split( '&gt;' ).join( '>' )\r
-       .split( '&nbsp;' ).join( ' ' );\r
-};\r
-\r
-/*\r
- * original\r
- * AS3で相対パスを絶対パスに変換する\r
- * http://www.shin-go.net/motionlab/?p=449\r
- */\r
-X.Dom.baseURL = ( function( parts ){\r
-       var last = 1 < parts.length && parts[ parts.length - 1 ];\r
-       if( last !== false && ( last === '' || //末尾が/で終わるとき\r
-               last.indexOf( '.' ) !== -1 ) ){//末尾がファイル名で終わる時\r
-               \r
-               --parts.length;\r
-       };\r
-       return parts.join( '/' );\r
-})( location.href.split( '?' )[ 0 ].split( '#' )[ 0 ].split( '/' ) );\r
-\r
-X.Dom.getAbsolutePath = function( path ){\r
-       var s  = '/',\r
-               ss = '//',\r
-               _ary, ary, i = 0;\r
-\r
-       if( 'http:file:https:'.indexOf( path.substr( 0, 4 ) ) !== -1 ) return path;\r
-       \r
-       _ary = X.Dom.baseURL.split( ss );\r
-       ary  = _ary[ 1 ].split( s );\r
-\r
-       if( path.charAt( 0 ) === s ) return [ _ary[ 0 ], ss, ary[ 0 ], path ].join( '' );\r
-               \r
-       if( path.substr( 0, 2 ) === './' ){\r
-               path = path.substr( 2 );\r
-       } else {\r
-               while( path.substr( i, 3 ) === '../' ){\r
-                       --ary.length;\r
-                       i += 3;\r
-               };\r
-               if( i ) path = path.substr( i );\r
-       };\r
-       return [ _ary[ 0 ], ss, ary.join( s ), s, path ].join( '' );\r
-};\r
-\r
 if( window[ 'orientation' ] !== undefined ){\r
        X.Dom._orientationchange = function( e ){\r
                X.Dom._orientationFlag = true;\r
@@ -443,5 +324,4 @@ if( window[ 'orientation' ] !== undefined ){
        };\r
 };\r
 \r
-\r
-console.log( 'X.Dom dom:w3c=' + X.Dom.DOM_W3C + ' ev:w3c=' + X.Dom.EVENT_W3C );\r
+console.log( 'X.Dom dom:w3c=' + X_UA_DOM.W3C + ' ev:w3c=' + X_UA_EVENT.W3C );\r
index 07c2432..e7d98b2 100644 (file)
@@ -1,8 +1,5 @@
-\r
-/* なんで */\r
-X.Dom.DTD = {\r
-       \r
-       EMPTY : {\r
+\r
+var X_Dom_DTD_EMPTY = {\r
                AREA     : true,\r
                BASE     : true,\r
                BASEFONT : true,\r
@@ -19,15 +16,17 @@ X.Dom.DTD = {
                EMBED    : true\r
        },\r
        \r
-       TAG_FIX :\r
-               X.UA.IE && 4 <= X.UA.IE && X.UA.IE < 5 ?\r
+       /*\r
+        * TODO html5 要素, audio, video は?\r
+        */     \r
+       X_Dom_DTD_TAG_FIX =\r
+               X_UA.IE4 ?\r
                        { ABBR : 'ACRONYM', BDO : '', RUBY : '' } :\r
-               X.UA.IE && 5 <= X.UA.IE && X.UA.IE < 7 ?\r
+               X_UA.IE5 || X_UA.IE55 || X_UA.IE6 ?\r
                        { ABBR : 'ACRONYM' } :\r
                        {},\r
        \r
-       //      video:1,audio:1}\r
-       ATTR_VAL_IS_URI : {\r
+       X_Dom_DTD_ATTR_VAL_IS_URI = {\r
                action     : true,\r
                archive    : true,\r
                background : true,\r
@@ -40,36 +39,46 @@ X.Dom.DTD = {
                profile    : true,\r
                src        : true,\r
                usemap     : true\r
-       }\r
-};\r
-\r
-X.Dom.moveToHead = {\r
-       STYLE   : true,\r
-       LINK    : true,\r
-       TITLE   : true,\r
-       BGSOUND : true,\r
-       AREA    : true,\r
-       BASE    : true,\r
-       META    : true\r
-};\r
+       },\r
+       \r
+       X_Dom_DTD_MOVE_TO_HEAD = {\r
+               STYLE   : true,\r
+               LINK    : true,\r
+               TITLE   : true,\r
+               BGSOUND : true,\r
+               AREA    : true,\r
+               BASE    : true,\r
+               META    : true\r
+       },\r
+       \r
+       X_Dom_DTD_CLEANUP_TAGS = {\r
+               SCRIPT   : true,\r
+               NOSCRIPT : true,\r
+               NOFRAMES : true,\r
+               '!'      : true, // ie\r
+               COMMENT  : true, // ie\r
+               NOEMBED  : true,\r
+               NOLAYER  : true\r
+       },\r
+       \r
+       X_Dom_DTD_SKIP_CLEANUP_TAGS = {\r
+               PRE       : true,\r
+               TEXTAREA  : true,\r
+               CODE      : true,\r
+               KBD       : true,\r
+               SAMP      : true,\r
+               XMP       : true,\r
+               PLAINTEXT : true,\r
+               LISTING   : true\r
+       };\r
+/*\r
+X.Dom.DTD = {\r
+       \r
+       EMPTY : X_Dom_DTD_EMPTY,\r
+       \r
+       TAG_FIX : X_Dom_DTD_TAG_FIX,\r
 \r
-X.Dom.cleanupTagNames = {\r
-       SCRIPT   : true,\r
-       NOSCRIPT : true,\r
-       NOFRAMES : true,\r
-       '!'      : true, // ie\r
-       COMMENT  : true, // ie\r
-       NOEMBED  : true,\r
-       NOLAYER  : true\r
+       ATTR_VAL_IS_URI : X_Dom_DTD_ATTR_VAL_IS_URI\r
 };\r
+*/\r
 \r
-X.Dom.skipCleanupTagNames = {\r
-       PRE       : true,\r
-       TEXTAREA  : true,\r
-       CODE      : true,\r
-       KBD       : true,\r
-       SAMP      : true,\r
-       XMP       : true,\r
-       PLAINTEXT : true,\r
-       LISTING   : true\r
-};\r
index 34a41c8..ecacc7a 100644 (file)
@@ -25,7 +25,7 @@ X.Dom.State = {
        HAS_HEIGHT_LENGTH  : 512,\r
        HAS_HEIGHT_PERCENT : 1024,\r
        IE4_ONLY_TEXT      : 2048,\r
-       IE5_DISPLAY_NONE_FIX : !X.UA.MacIE && 5 <= X.UA.IE && X.UA.IE < 5.5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
+       IE5_DISPLAY_NONE_FIX : !X.UA.MacIE && X.UA.IE5 ? 4096 : 0 // filterがかかっていると不可? MacIE5.2- は ?\r
 };\r
 \r
 X.Dom._strictElmCreation = !X.UA.MacIE && X.UA.IE5678;// && !X.UA.MacIE;\r
@@ -115,7 +115,7 @@ X.Dom.Node = X.EventDispatcher.inherits(
                                                // X.Dom.Dirty.CSS を落とす\r
                                                this._dirty = 0;\r
                                                // attr の回収は不可能、、、\r
-                                               if( X.Dom.DOM_IE4 ){\r
+                                               if( X_UA_DOM.IE4 ){\r
                                                        v.setAttribute( 'UID', '' + uid );\r
                                                } else {\r
                                                        v.UID = uid;\r
@@ -201,7 +201,7 @@ Node._getXNode = function( v ){
                case Node.IS_RAW_HTML :\r
                case Node.IS_IMAGE :\r
                        // fake TextNode too.\r
-                       if( X.Dom.DOM_IE4 ){\r
+                       if( X_UA_DOM.IE4 ){\r
                                uid = v.getAttribute( 'UID' );\r
                                return uid && Node._chashe[ uid ];\r
                        };\r
@@ -245,7 +245,7 @@ Node.getRoot = function( xnode ){
 };\r
        // XMLかどうかを判別する\r
 Node.isXmlDocument =\r
-       X.Dom.DOM_IE4 ?\r
+       X_UA_DOM.IE4 ?\r
                X.emptyFunction :\r
                (function( root ){\r
                        if( X.Type.isBoolean( root.isXML ) ) return root.isXML;\r
@@ -263,7 +263,7 @@ Node._systemNode = null; // = Node._chashe[ ? ]
 \r
 Node._reserveRemoval = [];\r
 \r
-if( X.Dom.DOM_IE4 ){\r
+if( X_UA_DOM.IE4 ){\r
        Node.prototype._ie4getRawNode = function(){\r
                var elm = this._rawObject;\r
                return elm ||\r
@@ -326,7 +326,7 @@ Node.prototype.clone = function( opt_clone_children ){
        switch( this._xnodeType ){\r
                case 1 :\r
                        Node._newByTag = true;\r
-                       xnode = new Node( this._tag, X.cloneObject( this._attrs ), X.cloneObject( this._css ) )\r
+                       xnode = new Node( this._tag, X_Object_clone( this._attrs ), X_Object_clone( this._css ) )\r
                                .attr( { 'id' : this._id } )\r
                                .className( this._className );\r
                        if( opt_clone_children && ( xnodes = this._xnodes ) && ( l = xnodes.length ) ){\r
@@ -376,10 +376,10 @@ Node.prototype.append = function( v ){
                        if( v._xnodeType !== 1 && v._xnodeType !== 3 ) return this;\r
                        // 親の xnodes から v を消す\r
                        if( v.parent ){\r
-                               //if( X.Dom.DOM_W3C ){\r
+                               //if( X_UA_DOM.W3C ){\r
                                //      v.parent._xnodes.splice( v.parent._xnodes.indexOf( v ), 1 );\r
                                //} else\r
-                               //if( X.Dom.DOM_IE4 ){\r
+                               //if( X_UA_DOM.IE4 ){\r
                                        v.remove();\r
                                //} else {\r
                                        \r
@@ -440,10 +440,10 @@ Node.prototype.appendAt = function( start, v ){
                        if( v._xnodeType !== 1 && v._xnodeType !== 3 ) return this;\r
                        // 親の xnodes から v を消す\r
                        if( v.parent ){\r
-                               //if( X.Dom.DOM_W3C ){\r
+                               //if( X_UA_DOM.W3C ){\r
                                //      v.parent._xnodes.splice( v.parent._xnodes.indexOf( v ), 1 );\r
                                //} else\r
-                               //if( X.Dom.DOM_IE4 ){\r
+                               //if( X_UA_DOM.IE4 ){\r
                                        v.remove();\r
                                //} else {\r
                                        \r
@@ -794,7 +794,7 @@ Node.prototype.html = function( html ){
                };\r
                if( Node._outerFlag === this )  Node._outerFlag = null;\r
        };\r
-       !Node._outerFlag || X.Dom.DTD.EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+       !Node._outerFlag || X_Dom_DTD_EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
        return html.join( _ );\r
 };\r
 \r
@@ -842,7 +842,7 @@ Node.prototype.call = function( name /*, opt_args... */ ){
        func = raw[ name ];\r
        if( X.Type.isFunction( func ) ){\r
                if( l ){\r
-                       args = X.copyArray( arguments );\r
+                       args = X_Object_cloneArray( arguments );\r
                        args.shift();\r
                        return func.apply( raw, args );\r
                };\r
@@ -852,7 +852,7 @@ Node.prototype.call = function( name /*, opt_args... */ ){
                // typeof func === unknown に対策\r
                // http://la.ma.la/blog/diary_200509031529.htm          \r
                if( l ){\r
-                       args = X.copyArray( arguments );\r
+                       args = X_Object_cloneArray( arguments );\r
                        args.shift();\r
                        \r
                params = [];\r
@@ -876,7 +876,7 @@ Node.prototype.call = function( name /*, opt_args... */ ){
 Node.prototype.each = function( func /*, opt_args */ ){\r
        var args;\r
        if( 1 < arguments.length ){\r
-               args = X.copyArray( arguments );\r
+               args = X_Object_cloneArray( arguments );\r
                args[ 0 ] = 0;          \r
                func.apply( this, args );\r
        } else {\r
@@ -948,7 +948,7 @@ Node.prototype._startUpdate = function(){
 };\r
 \r
 Node.prototype._commitUpdate =\r
-       X.Dom.DOM_W3C ?\r
+       X_UA_DOM.W3C ?\r
                ( function( parentElement, nextElement ){\r
                        var elm = this._rawObject,\r
                                xnodes, l, i, frg, next, k, v;\r
@@ -993,7 +993,7 @@ Node.prototype._commitUpdate =
                        };\r
                        return elm;\r
                }) :\r
-       X.Dom.DOM_IE4 ? \r
+       X_UA_DOM.IE4 ? \r
                ( function( parentElement, prevElement ){\r
                        var elm    = this._rawObject || this._ie4getRawNode(),\r
                                xnodes, l, i, html, text, prev;\r
@@ -1041,13 +1041,13 @@ Node.prototype._commitUpdate =
                (function(){});\r
 \r
 Node.prototype._updateRawNode =\r
-       X.Dom.DOM_W3C ?\r
+       X_UA_DOM.W3C ?\r
                ( function( elm ){\r
                        var attrs, rename, k, v;\r
 \r
                        // textNode\r
                        if( this._dirty & X.Dom.Dirty.CONTENT ){\r
-                               elm.data = X.Dom.chrReferanceTo( this._text );\r
+                               elm.data = X_String_chrReferanceTo( this._text );\r
                                delete this._dirty;\r
                                return;\r
                        };\r
@@ -1108,7 +1108,7 @@ Node.prototype._updateRawNode =
                        \r
                        delete this._dirty;\r
                }) :\r
-       X.Dom.DOM_IE4 ? \r
+       X_UA_DOM.IE4 ? \r
                ( function( elm ){\r
                        var attrs, rename, k, v;\r
 \r
@@ -1151,7 +1151,9 @@ Node.prototype._updateRawNode =
                                for( k in attrs ){\r
                                        ( v = attrs[ k ] ) === undefined ?\r
                                                elm.removeAttribute( rename[ k ] || k ) :\r
-                                               elm.setAttribute( rename[ k ] || k, v ); // TODO X.Dom.Attr.noValue[ k ] ? k : v\r
+                                       this._tag === 'TEXTAREA' && k === 'value' ?\r
+                                               ( elm.innerText = v ) :\r
+                                               elm.setAttribute( rename[ k ] || k, X.Dom.Attr.noValue[ k ] ? k : v ); // TODO X.Dom.Attr.noValue[ k ] ? k : v\r
                                };\r
                                delete this._newAttrs;\r
                        };\r
@@ -1178,14 +1180,14 @@ Node.prototype._updateRawNode =
  * document.createElement of ie4 is only for OPTION & IMAGE.\r
  */\r
 Node.prototype._actualCreate =\r
-       X.Dom.DOM_W3C ? (function( isChild ){\r
+       X_UA_DOM.W3C ? (function( isChild ){\r
                var elm = this._rawObject,\r
                        xnodes, frg, i, l;\r
                \r
                if( this._xnodeType === 3 ){\r
                        if( elm ) return elm;\r
                        delete this._dirty;\r
-                       return this._rawObject = document.createTextNode( X.Dom.chrReferanceTo( this._text ) );\r
+                       return this._rawObject = document.createTextNode( X_String_chrReferanceTo( this._text ) );\r
                };\r
                \r
                if( !elm ){\r
@@ -1217,7 +1219,7 @@ Node.prototype._actualCreate =
                \r
                return elm;\r
        }) :\r
-       X.Dom.DOM_IE4 ? (function( isChild ){\r
+       X_UA_DOM.IE4 ? (function( isChild ){\r
                var uid = this._uid,\r
                        html, xnodes, n, i, l;\r
                \r
@@ -1252,7 +1254,7 @@ Node.prototype._actualCreate =
                                        };                                      \r
                                };\r
                        };\r
-                       X.Dom.DTD.EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
+                       X_Dom_DTD_EMPTY[ this._tag ] || ( html[ n ] = '<\/' + this._tag + '>' );\r
                        \r
                        delete this._newAttrs;\r
                };\r
@@ -1262,7 +1264,7 @@ Node.prototype._actualCreate =
        (function(){});\r
 \r
 Node.prototype._afterActualCreate =\r
-       X.Dom.DOM_W3C ? (function(){\r
+       X_UA_DOM.W3C ? (function(){\r
                var elm = this._rawObject, xnodes, l, attrs, k, i;\r
 \r
                this._root  = this.parent._root;\r
@@ -1305,7 +1307,7 @@ Node.prototype._afterActualCreate =
                // ie の str から要素を作る場合、srcだけ イベント設定後ではないか?\r
                X_EventDispatcher_toggleAllEvents( this, true );// イベントの復帰\r
        }) :\r
-       X.Dom.DOM_IE4 ? (function(){\r
+       X_UA_DOM.IE4 ? (function(){\r
                var xnodes, i;\r
                this._root = this.parent._root;\r
                \r
@@ -1326,7 +1328,7 @@ Node.prototype._afterActualCreate =
        (function(){});\r
 \r
 Node.prototype._actualRemove =\r
-       X.Dom.DOM_W3C ?\r
+       X_UA_DOM.W3C ?\r
                ( function( isChild ){\r
                        var xnodes = this._xnodes,\r
                                elm    = this._rawObject,\r
@@ -1344,10 +1346,10 @@ Node.prototype._actualRemove =
                        if( !X.UA.MacIE ){\r
                                !isChild && elm.parentNode && elm.parentNode.tagName && elm.parentNode.removeChild( elm );\r
                        } else {\r
-                               !isChild && elm.parentNode && elm.parentNode.tagName && X.Dom._fixed_remove( elm, this );\r
+                               !isChild && elm.parentNode && elm.parentNode.tagName && X_TEMP._fixed_remove( elm, this );\r
                        };\r
                }) :\r
-       X.Dom.DOM_IE4 ?\r
+       X_UA_DOM.IE4 ?\r
                ( function( isChild ){\r
                        var xnodes = this._xnodes,\r
                                elm    = this._rawObject || this._ie4getRawNode(),\r
@@ -1361,7 +1363,7 @@ Node.prototype._actualRemove =
                        if( !elm ) return;\r
                        this._xnodeType === 1 && X_EventDispatcher_toggleAllEvents( this, false );// イベントの退避\r
                        \r
-                       if( X.Dom.Attr.HAS_VALUE[ this._tag ] && ( !this._newAttrs || !X.inObject( 'value', this._newAttrs ) ) ){\r
+                       if( X.Dom.Attr.HAS_VALUE[ this._tag ] && ( !this._newAttrs || !X_Object_inObject( 'value', this._newAttrs ) ) ){\r
                                this._attrs.value = elm.value;\r
                        };\r
                        elm.removeAttribute( 'id' ); // ?\r
index 183090e..df7c725 100644 (file)
 \r
 // http://msdn.microsoft.com/ja-jp/library/ie/dn255104%28v=vs.85%29.aspx\r
 var X_Dom_Event_devicePixelRatio = window.devicePixelRatio || ( window.screen.deviceXDPI / window.screen.logicalXDPI ),\r
-       X_Dom_Event_convertMSPointerType = window.MSPointerEvent && {\r
-               2 : 'touch',\r
-               3 : 'pen',\r
-               4 : 'mouse'\r
-       };\r
+       X_Dom_Event_convertMSPointerType = window.MSPointerEvent && [ 0, 0, 'touch', 'pen', 'mouse' ];/*{\r
+               '2' : 'touch',\r
+               '3' : 'pen',\r
+               '4' : 'mouse'\r
+       }; */\r
 \r
 if( !X.UA.IE || 9 <= X.UA.IE ){\r
        X.Dom.Event = function( e, xnode ){\r
@@ -340,7 +340,7 @@ X.Dom.Event._LOAD_FIX_TAGS = {
 \r
 X.Dom.Event.Rename    = {};\r
 X.Dom.Event.RenameTo  = {};\r
-X.Dom.Event.toPointer = !X.Dom.EVENT_POINTER && ( X.Dom.EVENT_TOUCH ?\r
+X.Dom.Event.toPointer = !X_UA_HID.POINTER && ( X_UA_HID.TOUCH ?\r
        {\r
                touchdown   : 'pointerdown',\r
                mousedown   : 'pointerdown',\r
@@ -444,7 +444,7 @@ if( !navigator.pointerEnabled ){
                X.Dom.Event.Rename[ 'pointercancel'   ] = 'MSPointerCancel';\r
                // http://msdn.microsoft.com/ja-jp/library/ie/dn304886%28v=vs.85%29.aspx\r
        } else\r
-       if( X.Dom.EVENT_TOUCH ){\r
+       if( X_UA_HID.TOUCH ){\r
                X.Dom.Event.Rename[ 'pointerdown'     ] = [ 'touchdown', 'mousedown' ];\r
                X.Dom.Event.Rename[ 'pointerup'       ] = [ 'touchup',   'mouseup' ];\r
                X.Dom.Event.Rename[ 'pointermove'     ] = [ 'touchmove', 'mousemove' ];\r
@@ -486,7 +486,7 @@ if( !navigator.pointerEnabled ){
 // http://shimax.cocolog-nifty.com/search/2006/09/safarijavascrip_c54d.html\r
 \r
 /* for ie9+/Mozilla/Opera9 */\r
-if( X.Dom.EVENT_W3C ){\r
+if( X_UA_EVENT.W3C ){\r
        Node._document.listenOnce( 'DOMContentLoaded', X.Dom._init );\r
 } else\r
 if( 6 <= X.UA.IE && X.inHead ){\r
@@ -508,7 +508,7 @@ if( 6 <= X.UA.IE && X.inHead ){
 // http://lists.apple.com/archives/web-dev/2003/Oct/msg00036.html\r
 if( X.UA.WebKit || X.UA.Safari < 3 ){ // sniff\r
        X.Timer.add( 16, function(){\r
-               if( !X.Dom._init ) return X.Callback.UN_LISTEN;\r
+               if( !X.Dom._init ) return X_Callback_UN_LISTEN;\r
                if( document.readyState === 'loaded' || document.readyState === 'complete' ) return X.Dom._init();\r
        });\r
 };\r
index 3d6f78f..923cc99 100644 (file)
@@ -88,11 +88,11 @@ Node.prototype.width = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'width' );\r
                return this._rawObject.offsetWidth;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).offsetWidth;\r
        } else {\r
                \r
@@ -110,11 +110,11 @@ Node.prototype.height = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'height' );\r
                return this._rawObject.offsetHeight;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).offsetHeight;\r
        } else {\r
                \r
@@ -132,11 +132,11 @@ Node.prototype.clientWidth = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'width' );\r
                return this._rawObject.clientWidth;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).clientWidth;\r
        } else {\r
                \r
@@ -154,11 +154,11 @@ Node.prototype.clientHeight = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'height' );\r
                return this._rawObject.clientHeight;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).clientHeight;\r
        } else {\r
                \r
@@ -176,11 +176,11 @@ Node.prototype.scrollWidth = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'width' );\r
                return this._rawObject.scrollWidth;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).scrollWidth;\r
        } else {\r
                \r
@@ -198,11 +198,11 @@ Node.prototype.scrollHeight = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'height' );\r
                return this._rawObject.scrollHeight;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).scrollHeight;\r
        } else {\r
                \r
@@ -220,11 +220,11 @@ Node.prototype.scrollLeft = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'width' );\r
                return this._rawObject.scrollLeft;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).scrollLeft;\r
        } else {\r
                \r
@@ -242,11 +242,11 @@ Node.prototype.scrollTop = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'width' );\r
                return this._rawObject.scrollTop;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).scrollTop;\r
        } else {\r
                \r
@@ -272,12 +272,12 @@ Node.prototype.x = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'left' );\r
                // this.css( X.Dom.Style.Unit.px, 'translateX' );\r
                return this._rawObject.offsetLeft;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).offsetLeft;\r
        } else {\r
                \r
@@ -295,12 +295,12 @@ Node.prototype.y = function(){
                return 0;\r
        };\r
        if( this._state & X.Dom.State.DISPLAY_NONE ) return 0;\r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                // this.css( X.Dom.Style.Unit.px, 'top' );\r
                // this.css( X.Dom.Style.Unit.px, 'transisitonY' );\r
                return this._rawObject.offsetTop;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                return ( this._rawObject || this._ie4getRawNode() ).offsetTop;          \r
        } else {\r
                \r
@@ -325,10 +325,10 @@ Node.prototype.offset = function( /* xnodeParent */ ){
                return { x : 0, y : 0 };\r
        };\r
        \r
-       if( X.Dom.DOM_W3C ){\r
+       if( X_UA_DOM.W3C ){\r
                elm = this._rawObject;\r
        } else\r
-       if( X.Dom.DOM_IE4 ){\r
+       if( X_UA_DOM.IE4 ){\r
                elm = this._rawObject || this._ie4getRawNode();         \r
        } else {\r
                \r
index 9a43170..6e84b1f 100644 (file)
@@ -134,8 +134,8 @@ X.Dom.Node.prototype.attr = function( nameOrObj /* v */ ){
                        case 'disabled' :                       \r
                        case 'selectedIndex' :\r
                                if( X.Dom.Attr.HAS_VALUE[ this._tag ] ){\r
-                                       if( this._newAttrs && X.inObject( nameOrObj, this._newAttrs ) ) return this._newAttrs[ nameOrObj ];\r
-                                       if( elm = X.Dom.DOM_IE4 ? this._rawObject || this._ie4getRawNode() : this._rawObject ){\r
+                                       if( this._newAttrs && X_Object_inObject( nameOrObj, this._newAttrs ) ) return this._newAttrs[ nameOrObj ];\r
+                                       if( elm = X_UA_DOM.IE4 ? this._rawObject || this._ie4getRawNode() : this._rawObject ){\r
                                                if( !attrs ) attrs = this._attrs = {};\r
                                                return attrs[ nameOrObj ] = elm[ nameOrObj ]; // getAttribute( nameOrObj )?\r
                                        };\r
index bae6a2d..f3d8aba 100644 (file)
@@ -1131,7 +1131,7 @@ X.Dom.Node.prototype._getCharSize =
                        };
                        return 0;
                }) :
-       X.Dom.DOM_W3C ?
+       X_UA_DOM.W3C ?
                (function(){
                        var elm, v;
                        Node._body._updateTimerID && Node._body._startUpdate();
@@ -1145,7 +1145,7 @@ X.Dom.Node.prototype._getCharSize =
                        this._rawObject.removeChild( elm );
                        return this._fontSize = v;
                }) :
-       X.Dom.DOM_IE4 ?
+       X_UA_DOM.IE4 ?
                (function(){
                        var font, vu, v, u, _v;
                        Node._body._updateTimerID && Node._body._startUpdate();
index 9bf5312..136a3af 100644 (file)
@@ -36,7 +36,7 @@ X.Dom.NodeList.prototype.each = function( func /* opt_args... */ ){
                i = 0, args;\r
 \r
        if( 1 < arguments.length ){\r
-               args = X.copyArray( arguments );\r
+               args = X_Object_cloneArray( arguments );\r
                for( ; i < l; ++i ){\r
                        args[ 0 ] = i;\r
                        if( func.apply( this[ i ], args ) === false ) break;\r
index c09136d..0c01534 100644 (file)
@@ -225,7 +225,7 @@ X.Dom.Query._parse = function( query, last ){
                        scope     = this.constructor === X.Dom.NodeList && this.length ? this : [ this.constructor === Node ? this : Node._body ],\r
                        parents   = scope, // 探索元の親要素 XNodeList の場合あり\r
                        // TODO { title : true,,, }\r
-                       noLower   = 'title id name class for action archive background cite classid codebase data href longdesc profile src usemap',// + X.Dom.DTD.ATTR_VAL_IS_URI.join( ' ' ),\r
+                       noLower   = 'title id name class for action archive background cite classid codebase data href longdesc profile src usemap',// + X_Dom_DTD_ATTR_VAL_IS_URI.join( ' ' ),\r
                        ARY_PUSH  = Array.prototype.push,\r
                        ret       = [], // 結果要素\r
                        root      = X.Dom.Node.getRoot( scope[ 0 ] ),\r
index 648de81..db496ef 100644 (file)
@@ -9,7 +9,7 @@ X_Dom_Parser = {
        CHARS : {\r
                A:1,B:1,C:1,D:1,E:1,F:1,G:1,H:1,I:1,J:1,K:1,L:1,M:1,N:1,O:1,P:1,Q:1,R:1,S:1,T:1,U:1,V:1,W:1,X:1,Y:1,Z:1,\r
                a:2,b:2,c:2,d:2,e:2,f:2,g:2,h:2,i:2,j:2,k:2,l:2,m:2,n:2,o:2,p:2,q:2,r:2,s:2,t:2,u:2,v:2,w:2,x:2,y:2,z:2,\r
-               '0' : 4, '1' : 4, '2' : 4, '3' : 4, '4' : 4, '5' : 4, '6' : 4, '7' : 4, '8' : 4, '9' : 4,\r
+               // "0" : 4, "1" : 4, "2" : 4, "3" : 4, "4" : 4, "5" : 4, "6" : 4, "7" : 4, "8" : 4, "9" : 4, closure compiler で minify すると ie4 で error、eval使う\r
                \r
                '\t' : 16, '\r\n' : 16, '\r' : 16, '\n' : 16, '\f' : 16, '\b' : 16, ' ' : 16\r
        },\r
@@ -17,7 +17,7 @@ X_Dom_Parser = {
        whiteSpace : '\t\r\n\f\b ',\r
 \r
        // Empty Elements - HTML 4.01\r
-       empty : X.Dom.DTD.EMPTY,\r
+       empty : X_Dom_DTD_EMPTY,\r
 \r
        // Block Elements - HTML 4.01\r
        block : {ADDRESS:1,APPLET:1,BLOCKQUOTE:1,BUTTON:1,CENTER:1,DD:1,DEL:1,DIR:1,DIV:1,DL:1,DT:1,FIELDSET:1,FORM:1,FRAMESET:1,HR:1,IFRAME:1,INS:1,\r
@@ -143,7 +143,7 @@ X_Dom_Parser = {
                var alphabets = X_Dom_Parser.CHARS,\r
                        whiteSpace = X_Dom_Parser.CHARS,\r
                        saveAttr = X_Dom_Parser.saveAttr,\r
-                       uri   = X.Dom.DTD.ATTR_VAL_IS_URI,\r
+                       uri   = X_Dom_DTD_ATTR_VAL_IS_URI,\r
                        phase = 0,\r
                        l     = html.length,\r
                        i     = 0,\r
index e5769b8..1ab2830 100644 (file)
@@ -11,7 +11,7 @@ X.Dom.Image = {
                var xnode, img, remove, ret, run, memW, memH, w, h;\r
        \r
                if( X.Type.isString( XnodeOrImageElemOrSrc ) ){\r
-                       if( ret = X.Dom.Image._actualSize[ X.Dom.getAbsolutePath( XnodeOrImageElemOrSrc ) ] ) return ret;\r
+                       if( ret = X.Dom.Image._actualSize[ X_URL_toAbsolutePath( XnodeOrImageElemOrSrc ) ] ) return ret;\r
                        \r
                        xnode = X.Dom.Node._systemNode.create(\r
                                'img',\r
index 9bcb62f..daa50fb 100644 (file)
@@ -1,16 +1,16 @@
 \r
-X.Dom._useBuilder = true;\r
+X_TEMP.X_Dom_useBuilder = true;\r
 \r
-X.Dom._isCleanupTarget = function( elm ){\r
+X_TEMP._isCleanupTarget = function( elm ){\r
        var cname = ' ' + elm.className + ' ',\r
                tag   = ( elm.tagName || '' ).toUpperCase();\r
        return cname.indexOf( ' skip-cleanup ' ) === -1 &&\r
-               ( X.Dom.cleanupTagNames[ tag ] || cname.indexOf( ' cleanup-target ' ) !== -1 );\r
+               ( X_Dom_DTD_CLEANUP_TAGS[ tag ] || cname.indexOf( ' cleanup-target ' ) !== -1 );\r
 };\r
 \r
 if( X.UA.MacIE ){\r
 \r
-       X.Dom._fixed_remove = function( node, xnode ){\r
+       X_TEMP._fixed_remove = function( node, xnode ){\r
                var parent   = node.parentNode, l;\r
 \r
                node.nodeType !== 3 && alert( node.nodeType + '\n' + ( node.outerHTML || node.data ) );\r
@@ -88,10 +88,10 @@ if( X.UA.MacIE ){
 } else\r
 if( X.UA.Opera7 ){\r
 \r
-       X.Dom._fixed_remove = function( node ){\r
+       X_TEMP._fixed_remove = function( node ){\r
                if( node.nodeType === 1 || node.nodeType === 3 ){\r
                        node.parentNode && node.parentNode.removeChild( node );\r
-               } else {\r
+               //} else {\r
                        //node.data = '';\r
                };\r
        };\r
@@ -106,7 +106,7 @@ if( X.UA.Opera7 ){
  * IE6 には、「空の span エレメントに続く空白は無視される」という謎な癖があります。 \r
  */\r
 X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,\r
-       X.Dom.DOM_W3C ?\r
+       X_UA_DOM.W3C ?\r
 (function(){\r
        var r    = Node._body,\r
                body = r._rawObject,\r
@@ -117,7 +117,7 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
        //X.UA.MacIE && alert( body.innerHTML );\r
        // cleanup tree \r
        (function/*cleanUpTree*/( elm, skip, head ){\r
-               var nodes      = X.copyArray( elm.childNodes ),\r
+               var nodes      = X_Object_cloneArray( elm.childNodes ),\r
                        i          = 0,\r
                        l          = nodes.length,\r
                        node, tag, textNode, content;\r
@@ -126,22 +126,22 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
                        switch( node.nodeType ){\r
                                case 1 :\r
                                        tag = node.tagName.toUpperCase();\r
-                                       if( X.Dom.moveToHead[ tag ] ){\r
+                                       if( X_Dom_DTD_MOVE_TO_HEAD[ tag ] ){\r
                                                head = head || document.getElementsByTagName( 'head' )[ 0 ];\r
                                                head.appendChild( node );\r
                                                continue;\r
                                        } else\r
-                                       if( X.Dom._isCleanupTarget( node ) ){\r
+                                       if( X_TEMP._isCleanupTarget( node ) ){\r
                                                elm.removeChild( node );\r
                                                continue;\r
                                        } else {\r
                                                // pre タグ以下はスペースの置換は行わない\r
-                                               node.childNodes && node.childNodes.length && /*cleanUpTree*/arguments.callee( node, skip || X.Dom.skipCleanupTagNames[ tag ], head );\r
+                                               node.childNodes && node.childNodes.length && /*cleanUpTree*/arguments.callee( node, skip || X_Dom_DTD_SKIP_CLEANUP_TAGS[ tag ], head );\r
                                        };\r
                                        textNode = null;\r
                                        break;\r
                                case 3 :\r
-                                       content = skip ? node.data : X.Dom.cleanupWhiteSpace( node.data );\r
+                                       content = skip ? node.data : X_String_cleanupWhiteSpace( node.data );\r
                                        //console.log( 'Delete space ' + node.data.length + ' => ' + content.length );                          \r
                                        if( !textNode && content !== ' ' && content.length ){\r
                                                node.data = content;\r
@@ -157,7 +157,7 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
                                        if( !X.UA.Opera7 /*&& !X.UA.MacIE */ ){\r
                                                elm.removeChild( node );\r
                                        } else {\r
-                                               X.Dom._fixed_remove( node );\r
+                                               X_TEMP._fixed_remove( node );\r
                                        };\r
                                        //++count;\r
                        };\r
@@ -169,7 +169,7 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
        } else {\r
                // body の属性値の取得\r
                if( X.UA.IE5678 ){\r
-                       html = body.innerHTML.split( X.Dom.CRLF ).join( '' ); // 不要な改行が入る\r
+                       html = body.innerHTML.split( X_String_CRLF ).join( '' ); // 不要な改行が入る\r
                } else {\r
                        html = body.innerHTML;\r
                };\r
@@ -199,11 +199,11 @@ X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,
                        xnodes.push.apply( xnodes, e.xnodes );\r
                        elmProgress.style.width = '100%';\r
 \r
-                       X.Dom._asyncCreateTree( Node._body, body.childNodes, elmProgress );\r
+                       X_TEMP.asyncCreateTree( Node._body, body.childNodes, elmProgress );\r
                } );\r
 \r
 }) :\r
-X.Dom.DOM_IE4 ?\r
+X_UA_DOM.IE4 ?\r
 (function(){\r
        var r    = Node._body,\r
                body = r._rawObject,\r
@@ -232,7 +232,7 @@ X.Dom.DOM_IE4 ?
                                xnodes.push.apply( xnodes, e.xnodes );\r
                                elmProgress.style.width = '100%';\r
                                \r
-                               X.Dom._asyncCreateTree( Node._body, body.childNodes || body.children, elmProgress );\r
+                               X_TEMP.asyncCreateTree( Node._body, body.childNodes || body.children, elmProgress );\r
                        }\r
                );\r
 }) :\r
@@ -240,8 +240,8 @@ X.Dom.DOM_IE4 ?
        \r
 }) );\r
 \r
-X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){\r
-       var xnodes      = async ? 0           : X.copyArray( parent._xnodes ),\r
+X_TEMP.asyncCreateTree = function ( parent, elems, elmProgress, async ){\r
+       var xnodes      = async ? 0           : X_Object_cloneArray( parent._xnodes ),\r
                l           = async ? 0           : xnodes.length,\r
                stack       = async ? async.stack : [],\r
                done        = async ? async.done  : 0,\r
@@ -251,13 +251,13 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
                        xnodes : xnodes,\r
                        l      : l,\r
                        i      : 0,\r
-                       elems  : X.copyArray( elems ),\r
+                       elems  : X_Object_cloneArray( elems ),\r
                        j      : 0,\r
                        xtext  : null,\r
                        flag   : 0\r
                },\r
                xnode, i, dive;\r
-       //alert( 'X.Dom._asyncCreateTree' );\r
+       //alert( 'X_TEMP.asyncCreateTree' );\r
        while( current || ( current = stack.pop() ) ){\r
                i = current.i;\r
                l = current.l;\r
@@ -266,7 +266,7 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
                        xnodes = current.xnodes;\r
                        while( xnode = xnodes[ i ] ){                   \r
                                //\r
-                               dive = X.Dom._bindElementToXnode( parent, xnode, current );\r
+                               dive = X_TEMP.bindElementToXnode( parent, xnode, current );\r
                                \r
                                ++i;\r
                                ++done;\r
@@ -289,7 +289,7 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
                                                async.done    = done;\r
                                        };\r
                                        //alert( 'koko?' );\r
-                                       X.Timer.once( 0, X.Dom._asyncCreateTree, [ null, null, elmProgress, async || { stack : stack, current : i < l && current, done : done } ] );\r
+                                       X.Timer.once( 0, X_TEMP.asyncCreateTree, [ null, null, elmProgress, async || { stack : stack, current : i < l && current, done : done } ] );\r
                                        // progress\r
                                        elmProgress.style.width = ( ( 1 - done / Node._chashe.length ) * 100 | 0 ) + '%';\r
                                        return;\r
@@ -299,14 +299,15 @@ X.Dom._asyncCreateTree = function ( parent, elems, elmProgress, async ){
                current = null;\r
        };\r
        // complete\r
-       X.Dom.asyncDispatch( 0, { type : X.Dom.Event.DOM_BUILDER_COMPLETE } );\r
+       X.Dom.asyncDispatch( 0, X.Dom.Event.DOM_BUILDER_COMPLETE );\r
        elmProgress.parentNode ? elmProgress.parentNode.removeChild( elmProgress ) : ( elmProgress.outerHTML = '' );\r
-       delete X.Dom._asyncCreateTree;\r
-       delete X.Dom._bindElementToXnode;\r
+       delete X_TEMP.asyncCreateTree;\r
+       delete X_TEMP.bindElementToXnode;\r
+       delete X_TEMP.X_Dom_useBuilder;\r
 };\r
 \r
-X.Dom._bindElementToXnode =\r
-       X.Dom.DOM_W3C ?\r
+X_TEMP.bindElementToXnode =\r
+       X_UA_DOM.W3C ?\r
                (function( parent, xnode, current ){\r
                        var elems = current.elems,\r
                                //j     = current.j,\r
@@ -325,25 +326,25 @@ X.Dom._bindElementToXnode =
                                        if( !X.UA.Opera7 && !X.UA.MacIE ){\r
                                                elm.parentNode.removeChild( elm );\r
                                        } else {\r
-                                               X.Dom._fixed_remove( elm );\r
+                                               X_TEMP._fixed_remove( elm );\r
                                        };\r
                                        continue;\r
                                };\r
                \r
                                if( xnode._xnodeType === 1 ){\r
                                        if( elm.nodeType === 3 ){\r
-                                               if( !( text = elm.data ) || ( text = X.Dom.cleanupWhiteSpace( text ) ) === ' ' ){\r
+                                               if( !( text = elm.data ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
                                                        //alert( text.charCodeAt( 0 ) );\r
                                                        if( !X.UA.Opera7 && !X.UA.MacIE ){\r
                                                                elm.parentNode.removeChild( elm );\r
                                                        } else {\r
-                                                               X.Dom._fixed_remove( elm );\r
+                                                               X_TEMP._fixed_remove( elm );\r
                                                        };\r
                                                        continue;\r
                                                };\r
                                                alert( '1:[' +parent._tag + '>' +xnode._tag + '] !== ' + elm.nodeType + '\n' + ( elm.data ) );\r
                                        } else\r
-                                       if( X.Dom.moveToHead[ tag ] ){\r
+                                       if( X_Dom_DTD_MOVE_TO_HEAD[ tag ] ){\r
                                                alert( tag );\r
                                                continue;\r
                                        } else\r
@@ -364,7 +365,7 @@ X.Dom._bindElementToXnode =
                                                        xnode.attr( 'value', xnode.html() ).empty();\r
                                                        \r
                                                } else\r
-                                               //if( X.Dom._isCleanupTarget( elm ) ){// !xnode.hasClass( 'skip-cleanup' ) && ( X.Dom.cleanupTagNames[ tag ] || xnode.hasClass( 'cleanup-target' ) ) ){ // ie で body 内の script が2度よばれるのに対処\r
+                                               //if( X_TEMP._isCleanupTarget( elm ) ){// !xnode.hasClass( 'skip-cleanup' ) && ( X_Dom_DTD_CLEANUP_TAGS[ tag ] || xnode.hasClass( 'cleanup-target' ) ) ){ // ie で body 内の script が2度よばれるのに対処\r
                                                        //alert( '[' +parent._tag + '>' + xnode._tag + '] remove ... ' );\r
                                                        //xnode.destroy();\r
                                                //} else\r
@@ -375,14 +376,14 @@ X.Dom._bindElementToXnode =
                                                        \r
                                                        return {\r
                                                                me     : xnode,\r
-                                                               xnodes : X.copyArray( xnode._xnodes ),\r
+                                                               xnodes : X_Object_cloneArray( xnode._xnodes ),\r
                                                                xtext  : null,\r
                                                                flag   : 0,\r
                                                                i      : 0,\r
                                                                l      : xnode._xnodes.length,\r
-                                                               elems  : X.copyArray( elm.childNodes ),\r
+                                                               elems  : X_Object_cloneArray( elm.childNodes ),\r
                                                                j      : 0,\r
-                                                               skipCleanup : skipCleanup || X.Dom.skipCleanupTagNames[ tag ]\r
+                                                               skipCleanup : skipCleanup || X_Dom_DTD_SKIP_CLEANUP_TAGS[ tag ]\r
                                                        };\r
                                                };\r
                                                // nochild\r
@@ -393,7 +394,7 @@ X.Dom._bindElementToXnode =
                                };\r
                                \r
                                if( elm.nodeType !== 3 ){\r
-                                       if( !( text = xnode._text ) || ( text = X.Dom.cleanupWhiteSpace( text ) ) === ' ' ){\r
+                                       if( !( text = xnode._text ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
                                                console.log( '[' +parent._tag + '> UID:' + xnode._uid + ' len:' + xnode._text.length + ' code : ' + xnode._text.charCodeAt( 0 ) + ',' + xnode._text.charCodeAt( 1 ) + '] destroyed.' );\r
                                                xnode.destroy();\r
                                                break;\r
@@ -411,7 +412,7 @@ X.Dom._bindElementToXnode =
                                xnode._text      = elm.data; // 正確\r
                                xnode._root      = parent._root;\r
                                if( !skipCleanup ){\r
-                                       if( !( text = xnode._text ) || ( text = X.Dom.cleanupWhiteSpace( text ) ) === ' ' ){\r
+                                       if( !( text = xnode._text ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
                                                console.log( '[' +parent._tag + '>' + xnode._uid + '] destroy ... ' );\r
                                                xnode.destroy();\r
                                        };\r
@@ -444,9 +445,9 @@ X.Dom._bindElementToXnode =
                        xnode.parent = parent;\r
                        \r
                        if( xnode._xnodeType === 3 ){\r
-                               //alert( X.Dom.cleanupWhiteSpace( xnode._text ) );\r
+                               //alert( X_String_cleanupWhiteSpace( xnode._text ) );\r
                                if( !skipCleanup ){\r
-                                       if( !( text = xnode._text ) || ( text = X.Dom.cleanupWhiteSpace( text ) ) === ' ' ){\r
+                                       if( !( text = xnode._text ) || ( text = X_String_cleanupWhiteSpace( text ) ) === ' ' ){\r
                                                xnode.destroy();\r
                                        } else\r
                                        if( xtext ){\r
@@ -491,8 +492,8 @@ X.Dom._bindElementToXnode =
                                        xnode._rawObject = elm;\r
                                        xnode._dirty     = 0;\r
                                        xnode._root      = parent._root;\r
-                                       //xnode._tag     = X.Dom.DTD.TAG_FIX[ tag ] || tag;\r
-                                       if( X.Dom._isCleanupTarget( elm ) ){ //!xnode.hasClass( 'skip-cleanup' ) && ( X.Dom.cleanupTagNames[ tag ] || xnode.hasClass( 'cleanup-target' ) ) ){\r
+                                       //xnode._tag     = X_Dom_DTD_TAG_FIX[ tag ] || tag;\r
+                                       if( X_TEMP._isCleanupTarget( elm ) ){ //!xnode.hasClass( 'skip-cleanup' ) && ( X_Dom_DTD_CLEANUP_TAGS[ tag ] || xnode.hasClass( 'cleanup-target' ) ) ){\r
                                                xnode.destroy();\r
                                                break;\r
                                        };\r
@@ -514,14 +515,14 @@ X.Dom._bindElementToXnode =
                                        if( xnode._xnodes && xnode._xnodes.length ){\r
                                                return {\r
                                                        me     : xnode,\r
-                                                       xnodes : X.copyArray( xnode._xnodes ),\r
+                                                       xnodes : X_Object_cloneArray( xnode._xnodes ),\r
                                                        xtext  : null,\r
                                                        flag   : 0,\r
                                                        i      : 0,\r
                                                        l      : xnode._xnodes.length,\r
-                                                       elems  : X.copyArray( elm.children ),\r
+                                                       elems  : X_Object_cloneArray( elm.children ),\r
                                                        j      : 0,\r
-                                                       skipCleanup : skipCleanup || X.Dom.skipCleanupTagNames[ tag ]\r
+                                                       skipCleanup : skipCleanup || X_Dom_DTD_SKIP_CLEANUP_TAGS[ tag ]\r
                                                };\r
                                        };\r
                                        break;\r
index d7e2032..b13c5a4 100644 (file)
@@ -9,7 +9,7 @@
 var X_Pulgin_FLASH_VERSION =
                !X.UA.IE && navigator.plugins[ 'Shockwave Flash' ] ?
                        parseFloat( navigator.plugins[ 'Shockwave Flash' ].version ) :
-               X.UA.ActiveX ? (function(){
+               !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
                            var obj = eval( 'var a;try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}a' ),
                                ver = obj && obj.GetVariable( '$version' ).split( ' ' ).join( '.' );
                                return parseFloat( ver ) || 0;
@@ -40,7 +40,7 @@ var X_Pulgin_FLASH_VERSION =
        X_Pulgin_UNITY_VERSION =        
                !X.UA.IE && navigator.plugins[ 'Unity Player' ] ?
                        parseFloat( navigator.plugins[ 'Unity Player' ].version ) :
-               X.UA.ActiveX ? (function(){
+               !X.UA.IE4 && !X.UA.IE5 && X.UA.ActiveX ? (function(){
                            var obj = eval( 'var a;try{a=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1")}catch(e){}a' );
                            return obj ? parseFloat( obj.GetPluginVersion() ) : 0;
                        })() :
index f5f4203..5a657f6 100644 (file)
@@ -19,7 +19,7 @@ new ActiveXObject( 'Msxml2.XMLHTTP.4.0' ); // バージョン4.0 は bugfix が
 new ActiveXObject( 'Msxml2.XMLHTTP.5.0' ); // バージョン5.0 は bugfix が行われないので、3.0 か 6.0 を指定すべき\r
 \r
  */\r
-var X_Net_XHR_W3C      = window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
+var X_Net_XHR_W3C      = ( !X.UA.IE7 || !X_URL_IS_LOCAL ) && window[ 'XMLHttpRequest' ] && new XMLHttpRequest(),\r
        X_Net_XHR_X_DOMAIN = window[ 'XDomainRequest' ] && new XDomainRequest(),\r
        X_Net_XHR_VERSION  = 0,\r
        X_Net_XHR_ACTIVE_X = !X.UA.IE4 && X.UA.IE < 8 && X.UA.ActiveX && ( new Function( [\r
@@ -50,9 +50,9 @@ X.Net.XHR = {
 \r
 /*\r
  * http://hakuhin.jp/as/import.html\r
- * ファイルの読み込みについて\r
+ * ファイルの読み込みについて(4 or 5 or 6+)\r
  * http://hakuhin.jp/as/javascript.html\r
- * Flash から JavaScript にアクセスする\r
+ * Flash から JavaScript にアクセスする(3+)\r
  */\r
        FLASH       : false,\r
        \r
@@ -71,7 +71,7 @@ X.Net.XHR = {
 \r
 };\r
 \r
-if( X.Net.XHR.W3C || X_Net_XHR_ACTIVE_X ){\r
+if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){\r
        \r
        X_NET_XHRWrapper = X.Class._override(\r
                new X.EventDispatcher(),\r
@@ -293,7 +293,11 @@ if( X.Net.XHR.W3C || X_Net_XHR_ACTIVE_X ){
                X_NET_XHRWrapper.listen( [ 'readystatechange', 'error', 'abort', 'timeout' ] );\r
        } else\r
        if( X.UA.IE7 ){\r
-               X_NET_XHRWrapper.listen( [ 'readystatechange', 'error' ] ); // ie7 ActiveX の場合、error は不可\r
+               if( X_URL_IS_LOCAL ){\r
+                       X_NET_XHRWrapper.listen( 'readystatechange' ); // ie7 ActiveX の場合、error は不可\r
+               } else {\r
+                       X_NET_XHRWrapper.listen( [ 'readystatechange', 'error' ] ); // ie7 ActiveX の場合、error は不可\r
+               };\r
        } else\r
        if( X_Net_XHR_ACTIVE_X ){ // win ie5-6\r
                X_NET_XHRWrapper.listen( 'readystatechange' );\r
index 4b94da4..175d2ec 100644 (file)
@@ -1,4 +1,5 @@
-X.Audio = {\r
+\r
+X.Audio = {\r
        HTML5       : 1,\r
        Flash       : 2,\r
        Silverlight : 3,\r
@@ -8,7 +9,7 @@
        QuickTime   : 7,\r
        \r
        create : function( sourceList, opt_option ){\r
-               return new X_AudioProxy( X.Type.isArray( sourceList ) ? X.copyArray( sourceList ) : [ sourceList ], opt_option || {} );\r
+               return new X_AudioProxy( X.Type.isArray( sourceList ) ? X_Object_cloneArray( sourceList ) : [ sourceList ], opt_option || {} );\r
        }\r
 };\r
 \r
@@ -134,3 +135,5 @@ function X_AudioProxy_handleEvent( e ){
                        break;\r
        };\r
 };\r
+\r
+\r
index 827bed8..6a282dc 100644 (file)
@@ -1,4 +1,5 @@
-/*\r
+\r
+/*\r
  * original : uupaa-js HTML5Audio.js\r
  * https://code.google.com/p/uupaa-js/source/browse/trunk/0.8/src/Audio/HTML5Audio.js?r=568\r
  */\r
@@ -321,6 +322,3 @@ if( window.HTMLAudioElement ){
 \r
 \r
 \r
-\r
-\r
-\r
index 2faf847..2019d4a 100644 (file)
@@ -1,10 +1,14 @@
-/*\r
+\r
+/*\r
  * original : uupaa-js SilverlightAudio.js\r
  * https://code.google.com/p/uupaa-js/source/browse/trunk/0.8/src/Audio/SilverlightAudio.js?r=568\r
  *\r
  * Silverlight 4 → 5における不具合の状況\r
  * http://www.slideshare.net/wakabayashiy/silverlight-4-5 \r
- *\r
+ * \r
+ * IE10以降でSilverlightでF5押したらフリーズする不具合と対処\r
+ * http://katsuyuzu.hatenablog.jp/entry/2014/01/11/003550\r
+ * \r
  * SilverlLight5 ie6&7(ietester,winxp), ie8(winxp) で動作確認。firefox32 では動作しない。(4以下の方がよい?)\r
  */\r
 \r
@@ -127,7 +131,7 @@ if( X.Pulgin.SilverlightEnabled ){
                                 */\r
                                this.proxy       = proxy;\r
                        this._onload     = 'XAudioSilverlightOnLoad';// + ( ++X_Audio_SLAudio_uid );\r
-                               this._callback   = window[ this._onload ] = X.Callback.create( this, this.onSLReady, [ option.autoplay ] );\r
+                               this._callback   = window[ this._onload ] = X_Callback_create( this, this.onSLReady, [ option.autoplay ] );\r
                        this.xnodeObject = X.Dom.Node._body\r
                                .create( 'object', {\r
                                                type   : 'application/x-silverlight-2',\r
@@ -337,12 +341,12 @@ if( X.Pulgin.SilverlightEnabled ){
                        // SilverlightAudio.state\r
                        state : function(){ // @return Hash: { loop, error, paused, ended, source, duration }\r
                                return {\r
-                                       loop:      this._loop,\r
-                                       error:    this._error,\r
-                                       paused this._paused,\r
-                                       ended:    this._ended,\r
-                                       source this._source,\r
-                                       duration:   this._duration\r
+                                       loop     : this._loop,\r
+                                       error    : this._error,\r
+                                       paused   : this._paused,\r
+                                       ended    : this._ended,\r
+                                       source   : this._source,\r
+                                       duration : this._duration\r
                                };\r
                        },\r
                        \r
index ae31c1e..758438b 100644 (file)
@@ -1,5 +1,5 @@
 X.UI.Attr = {\r
-       AUTO  : Number.POSITIVE_INFINITY,\r
+       AUTO  : 1/0,//Number.POSITIVE_INFINITY,\r
        FLOOR : new Function( 'v', 'return 0 <= v ? v | 0 : -( -v | 0 )' ),\r
        \r
        USER : {\r
@@ -37,7 +37,7 @@ X.UI.Attr = {
        },\r
        \r
        createAttrDef : function( base, defs ){\r
-               var F = base ? X.cloneObject( base ) : {},\r
+               var F = base ? X_Object_clone( base ) : {},\r
                        z = base ? base._last : 0,\r
                        n = 1,\r
                        p, def;\r
index 7c84e74..05b40d5 100644 (file)
@@ -126,14 +126,14 @@ X.UI.Event = {
 };\r
 \r
 // raw pointing device event\r
-//if( X.Dom.EVENT_POINTER ){\r
+//if( X_UA_HID.POINTER ){\r
        X.UI.Event.IdToName[ X.UI.Event._POINTER_DOWN   ] = 'pointerdown';\r
        X.UI.Event.IdToName[ X.UI.Event._POINTER_UP     ] = 'pointerup';\r
        X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE   ] = 'pointermove';\r
        X.UI.Event.IdToName[ X.UI.Event._POINTER_CANCEL ] = 'pointercancel';\r
 /*} else {\r
        \r
-       if( X.Dom.EVENT_TOUCH ){\r
+       if( X_UA_HID.TOUCH ){\r
                X.UI.Event.IdToName[ X.UI.Event._TOUCH_START  ] = 'touchstart';\r
                X.UI.Event.IdToName[ X.UI.Event._TOUCH_END    ] = 'touchend';\r
                X.UI.Event.IdToName[ X.UI.Event._TOUCH_MOVE   ] = 'touchmove';\r
index 77df8c2..9a24b95 100644 (file)
                        Detection.register( Gestures[ name ] );\r
                };\r
 \r
-               //if( X.Dom.EVENT_POINTER ){\r
+               //if( X_UA_HID.POINTER ){\r
                        Hammer.EVENT_TYPES_START = [ X.UI.Event._POINTER_DOWN ];\r
                        types = [ X.UI.Event._POINTER_MOVE, X.UI.Event._POINTER_UP, X.UI.Event._POINTER_CANCEL ];\r
                /*} else\r
-               if( X.Dom.EVENT_TOUCH ){\r
+               if( X_UA_HID.TOUCH ){\r
                        Hammer.EVENT_TYPES_START = [ X.UI.Event._TOUCH_START, X.UI.Event._MOUSE_DOWN ];\r
                        types = [ X.UI.Event._MOUSE_MOVE, X.UI.Event._MOUSE_UP, X.UI.Event._MOUSE_CANCEL,\r
                                X.UI.Event._TOUCH_MOVE, X.UI.Event._TOUCH_END, X.UI.Event._TOUCH_CANCEL ];\r
index d229636..8ff8402 100644 (file)
@@ -778,11 +778,11 @@ X.UI._AbstractUINode = X.EventDispatcher.inherits(
                                        };\r
                                };\r
                        };\r
-                       f = X.Callback._classifyCallbackArgs( arg1, arg2, arg3 );\r
+                       f = X_Callback_classifyCallbackArgs( arg1, arg2, arg3 );\r
                        if( !f.k ){\r
                                return X_EventDispatcher_listen.call( this, type, this.User, f );\r
                        } else\r
-                       if( f.k === X.Callback._FUNC_ONLY ){\r
+                       if( f.k === X_Callback_FUNC_ONLY ){\r
                                return X_EventDispatcher_listen.call( this, type, this.User, f.f, f.s );\r
                        };\r
                        return X_EventDispatcher_listen.apply( this, arguments );\r
@@ -815,11 +815,11 @@ X.UI._AbstractUINode = X.EventDispatcher.inherits(
                                        };\r
                                };\r
                        };\r
-                       f = X.Callback._classifyCallbackArgs( arg1, arg2, arg3 );\r
+                       f = X_Callback_classifyCallbackArgs( arg1, arg2, arg3 );\r
                        if( !f.k ){\r
                                return X.EventDispatcher.prototype.unlisten.apply( this, [ type, this.User, f ] );\r
                        } else\r
-                       if( f.k === X.Callback._FUNC_ONLY ){\r
+                       if( f.k === X_Callback_FUNC_ONLY ){\r
                                return X.EventDispatcher.prototype.unlisten.apply( this, [ type, this.User, f.f, f.s ] );\r
                        };\r
                        return X.EventDispatcher.prototype.unlisten.apply( this, arguments );\r
index 37f0a41..d8dbac2 100644 (file)
@@ -115,7 +115,7 @@ X.UI._PageRoot = X.UI._Box.inherits(
                        // hover や rollover rollout のための move イベントの追加
                        // X.Dom.Event.activate, X.Dom.Event.deactivate ?
                        // mouseout, mouseover
-                       //if( X.Dom.EVENT_POINTER ){
+                       //if( X_UA_HID.POINTER ){
                                this.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ], X.UI._eventRellay );
                                if( counter[ X.UI.Event._POINTER_MOVE ] ){
                                        ++counter[ X.UI.Event._POINTER_MOVE ];
index 7c0dcc0..5d820a3 100644 (file)
@@ -3,29 +3,33 @@ document.write( [
                'js/01_core/00_builtin.js',\r
                'js/01_core/01_X.js',\r
                'js/01_core/02_XUA.js',\r
-               \r
+\r
                'js/01_core/03_XType.js',\r
-               'js/01_core/04_XCallback.js',\r
-               'js/01_core/05_XClass.js',\r
-               'js/01_core/06_XEvent.js',\r
-               'js/01_core/07_XEventDispatcher.js',            \r
-               'js/01_core/08_XTimer.js',\r
+               'js/01_core/04_XObject.js',\r
+               'js/01_core/05_XString.js',\r
+               'js/01_core/06_XURL.js',\r
+                                               \r
+               'js/01_core/10_XCallback.js',\r
+               'js/01_core/11_XClass.js',\r
+               'js/01_core/12_XEvent.js',\r
+               'js/01_core/13_XEventDispatcher.js',            \r
+               'js/01_core/14_XTimer.js',\r
 \r
-               //'js/01_core/09_XSystem.js',\r
-               'js/01_core/10_XLogger.js',\r
-               //'js/01_core/11_XView.js',\r
+               //'js/01_core/15_XSystem.js',\r
+               //'js/01_core/16_XView.js',             \r
+               'js/01_core/17_XLogger.js',\r
 \r
                \r
-               'js/02_dom/10_XDom.js',\r
-               'js/02_dom/11_XDomDTD.js',\r
-               'js/02_dom/12_XDomNode.js',\r
-               'js/02_dom/13_XDomEvent.js',\r
-               'js/02_dom/14_XDomBoxModel.js',\r
-               'js/02_dom/15_XDomAttr.js',\r
-               'js/02_dom/16_XDomStyle.js',\r
-               'js/02_dom/17_XDomNodeList.js',\r
-               'js/02_dom/18_XDomSelector.js',\r
-               'js/02_dom/19_XDomParser.js',\r
+               'js/02_dom/00_XDom.js',\r
+               'js/02_dom/01_XDomDTD.js',\r
+               'js/02_dom/02_XDomNode.js',\r
+               'js/02_dom/03_XDomEvent.js',\r
+               'js/02_dom/04_XDomBoxModel.js',\r
+               'js/02_dom/05_XDomAttr.js',\r
+               'js/02_dom/06_XDomStyle.js',\r
+               'js/02_dom/07_XDomNodeList.js',\r
+               'js/02_dom/08_XDomSelector.js',\r
+               'js/02_dom/09_XDomParser.js',\r
                'js/02_dom/20_XDomImage.js', // remove\r
                'js/02_dom/22_XDomBuilder.js',\r
 \r
@@ -38,7 +42,7 @@ document.write( [
                'js/05_net/00_XNet.js',\r
                'js/05_net/01_XNetXHR.js',\r
                'js/05_net/02_XNetJSONP.js',\r
-               'js/05_net/03_XNetForm.js',\r
+               //'js/05_net/03_XNetForm.js',\r
                'js/05_net/04_XNetImage.js',\r
                \r
                'js/06_audio/00_XAudio.js',\r