OSDN Git Service

Version 0.6.137, bugfix for X.NodeSelector.
authoritozyun <itozyun@user.sourceforge.jp>
Fri, 3 Apr 2015 09:46:02 +0000 (18:46 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Fri, 3 Apr 2015 09:46:02 +0000 (18:46 +0900)
0.6.x/js/01_core/16_XViewPort.js
0.6.x/js/02_dom/08_XNodeSelector.js
0.6.x/js/03_plugin/00_XPlugin.js
0.6.x/js/05_util/01_XNinjaIframe.js
0.6.x/js/06_net/00_XNet.js
0.6.x/js/06_net/01_XNetXHR.js
0.6.x/js/07_audio/01_XWebAudio.js

index bcc341a..0684d3f 100644 (file)
@@ -21,7 +21,7 @@ var X_ViewPort_readyState,
        X_Dom_orientationchange = window[ 'orientation' ] !== undefined && function( e ){
                X_ViewPort_orientationFlag = true;
                !X_UA[ 'Android' ] && X_ViewPort_resize();
-               //console.log( '-- orientationchange : ' + X[ 'ViewPort' ].getSize[ 0 ] + ' ' + X[ 'ViewPort' ].getSize[ 1 ] );
+               //console.log( '-- orientationchange : ' + X[ 'ViewPort' ][ 'getSize' ][ 0 ] + ' ' + X[ 'ViewPort' ][ 'getSize' ][ 1 ] );
        },
        
        X_ViewPort_document = X_EventDispatcher( document ),
@@ -264,7 +264,7 @@ X[ 'ViewPort' ] = {
                                X_ViewPort_lock = false;
                                if( X_ViewPort_orientationFlag ){
                                        X_ViewPort_orientationFlag = false;
-                                       X_ViewPort[ 'asyncDispatch' ]( 100, { type : X_EVENT_VIEW_TURNED, orientation : window.orientation } );
+                                       X_ViewPort[ 'asyncDispatch' ]( 100, { type : X_EVENT_VIEW_TURNED, 'orientation' : window.orientation } );
                                };
                        };
                };
@@ -303,12 +303,12 @@ X[ 'ViewPort' ] = {
                        body[ 'parent ' ] = head[ 'parent' ] = html;
                        html[ '_xnodes' ] = [ head, body ];
                        
-                       html[ 'appendTo' ] = html[ 'before' ] = html[ 'after' ] = html[ 'clone' ] = html[ 'remove' ] = html[ 'destroy' ] = html[ 'prev' ] = html[ 'next' ] =
+                       html[ 'appendTo' ] = html[ 'prev' ] = html[ 'next' ] = html[ 'clone' ] = html[ 'remove' ] = html[ 'destroy' ] =
                        html[ 'create' ] = html[ 'createText' ] = html[ 'createAt' ] = html[ 'createTextAt' ] = html[ 'append' ] = html[ 'appendAt' ] = html[ 'empty' ] = html[ 'html' ] = html[ 'text' ] =
                        html[ 'css' ] = html[ 'cssText' ] =
-                       head[ 'appendTo' ] = head[ 'before' ] = head[ 'after' ] = head[ 'clone' ] = head[ 'remove' ] = head[ 'destroy' ] =
+                       head[ 'appendTo' ] = head[ 'prev' ] = head[ 'next' ] = head[ 'clone' ] = head[ 'remove' ] = head[ 'destroy' ] =
                        head[ 'createText' ] = head[ 'createTextAt' ] = head[ 'empty' ] = head[ 'html' ] = head[ 'text' ] = head[ 'css' ] = head[ 'cssText' ] =
-                       body[ 'appendTo' ] = body[ 'before' ] = body[ 'after' ] = body[ 'clone' ] = body[ 'remove' ] = body[ 'destroy' ] = new Function( 'return this' );
+                       body[ 'appendTo' ] = body[ 'prev' ] = body[ 'next' ] = body[ 'clone' ] = body[ 'remove' ] = body[ 'destroy' ] = new Function( 'return this' );
 
                        X_ViewPort[ 'listenOnce' ]( X_EVENT_PRE_INIT, function(){
                                X_ViewPort_readyState = X_EVENT_XTREE_READY;
@@ -336,6 +336,9 @@ X[ 'ViewPort' ] = {
                                        defaultOverflow = document.body.style.overflow,
                                        w, h;
                        
+                               X_ViewPort_width  = size[ 0 ];
+                               X_ViewPort_height = size[ 1 ];
+                       
                                body.style.overflow = 'hidden';
                                w = body.clientWidth;
                                h = body.clientHeight;
@@ -368,9 +371,8 @@ X[ 'ViewPort' ] = {
                                };
                                
                                X_ViewPort_baseFontSize = X_Node_fontSizeNode[ '_rawObject' ].offsetHeight;
-                               
-                               X_ViewPort_readyState = X_EVENT_XDOM_READY;
-                               X_ViewPort[ 'asyncDispatch' ]( { type : X_EVENT_XDOM_READY, w : X_ViewPort_width = size[ 0 ], h : X_ViewPort_height = size[ 1 ] } );
+
+                               X_ViewPort[ 'asyncDispatch' ]( X_ViewPort_readyState = X_EVENT_XDOM_READY );
                        } );
 
                        X_ViewPort[ 'asyncDispatch' ]( X_EVENT_PRE_INIT );      
index 1268ac3..578d9b2 100644 (file)
@@ -119,6 +119,7 @@ function X_Node_Selector__parse( query, last ){
                        case 0x4 : // start attr filter\r
                                name1st ?\r
                                        ( ( phase = 0x5 ) && ( start = i ) ) :\r
+                               chr !== ' ' &&\r
                                        ( phase = 0xf );\r
                                break;\r
                        case 0x5 : // attr filter key\r
@@ -169,7 +170,7 @@ function X_Node_Selector__parse( query, last ){
                                break;\r
                        case 0xa :\r
                                chr === ')' && ( phase = 0xe ) && ++i && ( b = parseFloat( query.substring( start, i ) ) || 0 );\r
-                               console.log( '0xa: ' + start + ' ' + i );\r
+                               //console.log( '0xa: ' + start + ' ' + i );\r
                                break;\r
                        // contains, lang\r
                        case 0xb :\r
@@ -206,7 +207,7 @@ function X_Node_Selector__parse( query, last ){
                                        break;\r
                                } else {\r
                                        if( a !== a || b !== b ) return i;\r
-                                       result = [ not ? 0 : combinator, selector, name, a, b ];\r
+                                       result = [ not ? 0 : combinator, SELECTOR[ name ] || selector, name, a, b ];\r
                                        break;  \r
                                };\r
                        } else {\r
@@ -245,6 +246,7 @@ function X_Node_Selector__parse( query, last ){
                        l, i, n, parsed,\r
                        xnodes, // 一時保存用\r
                        merge, // 要素がコメントノードで汚染されている場合使う\r
+                       parent, children, j, m,\r
                        combinator, selector, name, tagName,\r
                        uid, tmp, xnode, filter, key, op, val, toLower, useName,\r
             links, className, attr, flag;\r
@@ -319,20 +321,40 @@ function X_Node_Selector__parse( query, last ){
                                // > TagName|*\r
                                case 2 :\r
                                        for( ; i < l; ++i ){\r
-                                               for( xnode = parents[ i ][ 'firstChild' ](); xnode; xnode = xnode[ 'next' ]() ){\r
-                                                       if( xnode[ '_tag' ] && ( isAll || tagName === xnode[ '_tag' ] ) ) xnodes[ ++n ] = xnode;\r
-                                               };                              \r
+                                               parent = parents[ i ];\r
+                                               if( ( children = parent[ '_xnodes' ] ) && ( m = children.length ) ){\r
+                                                       for( j = 0; j < m; ++j ){\r
+                                                               xnode = children[ j ];\r
+                                                               if( xnode[ '_tag' ] && ( isAll || tagName === xnode[ '_tag' ] ) ) xnodes[ ++n ] = xnode;\r
+                                                       };\r
+                                               };                      \r
                                        };\r
                                        break;\r
                                // + TagName|*\r
                                case 3 :\r
                                        for( ; i < l; ++i ){\r
+                                               \r
+                                               xnode = parents[ i ];\r
+                                               j = xnode[ 'getOrder' ]() + 1;\r
+                                               parent = xnode.parent;\r
+                                               if( parent && ( children = parent[ '_xnodes' ] ) && ( m = children.length ) ){\r
+                                                       for( ; j < m; ++j ){\r
+                                                               xnode = children[ j ];\r
+                                                               if( xnode[ '_tag' ] ){\r
+                                                                       if( isAll || tagName === xnode[ '_tag' ] ){\r
+                                                                               xnodes[ ++n ] = xnode;\r
+                                                                       };\r
+                                                                       break;\r
+                                                               };\r
+                                                       };\r
+                                               };\r
+                                               /*\r
                                                for( xnode = parents[ i ][ 'next' ](); xnode; xnode = xnode[ 'next' ]() ){\r
                                                        if( xnode[ '_tag' ] ){\r
                                                                if( isAll || tagName === xnode[ '_tag' ] ) xnodes[ ++n ] = xnode;\r
                                                                break;\r
                                                        };                                                                      \r
-                                               };                                                              \r
+                                               };      */                                                      \r
                                        };\r
                                        break;\r
                                // ~ TagName|*\r
@@ -355,12 +377,28 @@ function X_Node_Selector__parse( query, last ){
                                \r
                                // case 6 : 属性ノードは実装しない\r
                                \r
-                               default :\r
+                               default :                               \r
                                        if( combinator === 1 || ( isStart && selector < 7 ) ){\r
+                                               if( isStart ){\r
+                                                       if( tagName === 'HTML' ){\r
+                                                               xnodes[ 0 ] = X_Node_html;\r
+                                                               break;\r
+                                                       };\r
+                                                       if( tagName === 'HEAD' ){\r
+                                                               xnodes[ 0 ] = X_Node_head;\r
+                                                               break;\r
+                                                       };\r
+                                                       if( tagName === 'BODY' ){\r
+                                                               xnodes[ 0 ] = X_Node_body;\r
+                                                               break;\r
+                                                       };\r
+                                                       \r
+                                               };\r
                                                //console.log( l + ' > ' + xnodes.length + ' tag:' + tagName );\r
+                                               merge = {};\r
                                                for( ; i < l; ++i ){\r
                                                        xnode = parents[ i ];\r
-                                                       xnode[ '_xnodes' ] && xnode[ '_xnodes' ].length && X_Node_Selector__fetchElements( xnodes, xnode, isAll ? null : tagName );\r
+                                                       xnode[ '_xnodes' ] && xnode[ '_xnodes' ].length && X_Node_Selector__fetchElements( xnodes, xnode, isAll ? '' : tagName, merge );\r
                                                };\r
                                                //console.log( l + ' >> ' + xnodes.length + ' tag:' + tagName );\r
                                        };\r
@@ -390,7 +428,27 @@ function X_Node_Selector__parse( query, last ){
                                case 6 :\r
                                        isNot  = true;\r
                                        parsed = parsed[ 2 ];\r
-                                       continue;\r
+                                       name   = parsed[ 2 ];\r
+                                       switch( parsed[ 1 ] ) {\r
+                                               case 1 :\r
+                                                       filter = [ 'tag', 1, isXML ? name : name.toUpperCase() ]; break;\r
+                                               // #, ID\r
+                                               case 2 :\r
+                                                       filter = [ 'id', 1, name ]; break;\r
+                                               // ., class\r
+                                               case 3 :\r
+                                                       filter = [ 'class', 3, name ]; break;\r
+                                               // :, 擬似クラス\r
+                                               case 4 :\r
+                                                       if( !( filter = X_Node_Selector__filter[ name ] ) ){\r
+                                                               return [];\r
+                                                       };\r
+                                                       break;\r
+                                               // [] 属性\r
+                                               case 5 :\r
+                                                       filter = [ name, parsed[ 3 ], parsed[ 4 ] ]; break;\r
+                                       };\r
+                                       break;\r
                                // scope\r
                                case 7 :\r
                                        xnodes = scope; break;\r
@@ -402,7 +460,7 @@ function X_Node_Selector__parse( query, last ){
                                case 9 :\r
                                        if( links = document.links ){\r
                                                for( xnodes = [], i = links.length; i; ){\r
-                                                       xnodes[ --i ] = new Node( links[ i ] );\r
+                                                       xnodes[ --i ] = Node( links[ i ] );\r
                                                };\r
                                        } else {\r
                                                // area[href],a[href]\r
@@ -457,6 +515,7 @@ function X_Node_Selector__parse( query, last ){
                                                for( i = 0, n = -1, l = xnodes.length; i < l; ++i ){\r
                                                        xnode = xnodes[ i ];\r
                                                        attr =\r
+                                                               key === 'tag' ? xnode[ '_tag' ] :\r
                                                                key === 'id' ? xnode[ '_id' ] :\r
                                                                key === 'class' ? xnode[ '_className' ] :\r
                                                                xnode[ '_attrs' ] && xnode[ '_attrs' ][ key ];\r
@@ -465,7 +524,7 @@ function X_Node_Selector__parse( query, last ){
                                                                //useName ?\r
                                                                //      elem[ X_Node_Attr_renameForDOM[ key ] || key ] :\r
                                                                //      elem.getAttribute( key, 2 );\r
-                                                       flag = attr != null;// && ( !useName || attr !== '' );\r
+                                                       flag = !!attr;// && ( !useName || attr !== '' );\r
                                                        if( flag && op ){\r
                                                                if( toLower ) attr = attr.toLowerCase();\r
                                                                \r
@@ -523,8 +582,7 @@ function X_Node_Selector__parse( query, last ){
                                        xnodes[ ++n ] = xnode;\r
                                };\r
                        };\r
-                       X_Node_Selector__sortElementOrder( ret = [], xnodes, hasRoot ? [ HTML ] : HTML[ '_xnodes' ] );\r
-                       xnodes = ret;\r
+                       xnodes = X_Node_Selector__sortElementOrder( [], xnodes, hasRoot ? [ HTML ] : HTML[ '_xnodes' ] );\r
                };\r
 \r
                return xnodes.length === 1 ? xnodes[ 0 ] : new X_NodeList( xnodes );\r
@@ -537,34 +595,35 @@ function X_Node_Selector__parse( query, last ){
                for( ; i < l; ++i ){\r
                        child = xnodes[ i ];\r
                        if( !child[ '_tag' ] ) continue;\r
-                       //console.log( child[ '_tag' ] );\r
-                       if( ( j = list.indexOf( child ) ) !== -1 ){\r
+\r
+                       j = list.indexOf( child );\r
+                       if( j !== -1 ){\r
                                newList[ newList.length ] = child;\r
-                               list.splice( j, 1 );\r
-                               if( list.length === 1 ){\r
-                                       newList[ newList.length ] = list[ 0 ];\r
-                                       list.length = 0;\r
-                                       return true;\r
+                               if( list.length === 2 ){\r
+                                       newList[ newList.length ] = list[ j === 0 ? 1 : 0 ];\r
+                                       return newList;\r
                                };\r
-                               if( list.length === 0 ) return true;\r
+                               list.splice( j, 1 );\r
                        };\r
+\r
                        if( ( _xnodes = child[ '_xnodes' ] ) && X_Node_Selector__sortElementOrder( newList, list, _xnodes ) ){\r
-                               return true;\r
+                               return newList;\r
                        };\r
                };\r
        };\r
        \r
-       function X_Node_Selector__fetchElements( list, parent, tag ){\r
+       function X_Node_Selector__fetchElements( list, parent, tag, merge ){\r
                var xnodes = parent[ '_xnodes' ],\r
                        l      = xnodes.length,\r
                        i      = 0,\r
-                       child;\r
+                       child, uid;\r
                for( ; i < l; ++i ){\r
                        child = xnodes[ i ];\r
-                       if( child[ '_tag' ] ){\r
+                       uid   = child[ '_uid' ];\r
+                       if( !merge[ uid ] && child[ '_tag' ] ){\r
+                               merge[ uid ] = true;\r
                                ( !tag || child[ '_tag' ] === tag ) && ( list[ list.length ] = child );\r
-                               //console.log( parent[ '_tag' ] + ' > ' + child[ '_tag' ] + ' == ' + tag+ ' l:' + list.length );\r
-                               child[ '_xnodes' ] && child[ '_xnodes' ].length && X_Node_Selector__fetchElements( list, child, tag );\r
+                               child[ '_xnodes' ] && X_Node_Selector__fetchElements( list, child, tag, merge );\r
                        };\r
                };\r
        };\r
@@ -704,7 +763,7 @@ var X_Node_Selector__filter = {
                        checked = {};\r
                        flag_not = flags.not;\r
                        for( i = 0; link = links[ i ]; ++i ){\r
-                               checked[ ( new Node( link ) )[ '_uid' ] ] = true;\r
+                               checked[ ( Node( link ) )[ '_uid' ] ] = true;\r
                        };\r
                        for( i = 0, n = -1; xnode = xnodes[ i ]; ++i ){\r
                                if( checked[ xnode[ '_uid' ] ] ^ flag_not ) res[ ++n ] = xnode;\r
index e64422c..8b31533 100644 (file)
@@ -55,7 +55,7 @@ var X_Pulgin_FLASH_VERSION =
                        parseFloat( navigator.plugins[ 'Unity Player' ].version ) :
                !X_UA[ 'IE4' ] && !X_UA[ 'IE5' ] && X_UA[ 'ActiveX' ] ? (function(){
                            var obj = eval( 'var a,e;try{a=new ActiveXObject("UnityWebPlayer.UnityWebPlayer.1")}catch(e){}a' );
-                           return obj ? parseFloat( obj.GetPluginVersion() ) : 0;
+                           return obj ? parseFloat( obj[ 'GetPluginVersion' ]() ) : 0;
                        })() :
                        0,
 
index e88cb34..b4ede0f 100644 (file)
@@ -67,7 +67,7 @@ X[ 'Util' ][ 'NinjaIframe' ] = X_EventDispatcher[ 'inherits' ](
                                                this._ready = true;\r
                                                return;\r
                                        };\r
-                                       break;\r
+                                       //break; これあると IE8 で駄目!\r
                                        \r
                                case 'readystatechange' :\r
                                        if( ( raw.readyState !== 'complete' && raw.readyState !== 'loaded' ) ) break;\r
index 2d69294..30779d1 100644 (file)
@@ -5,12 +5,33 @@
 // <head><base> がある場合、<script>の追加に失敗する\r
 X[ 'Net' ] = {\r
 \r
-       'xhrGet' : function( url, type ){\r
-               return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'GET', url : url, type : type } );\r
+       'xhrGet' : function( url, obj ){\r
+               if( X_Type_isString( url ) ){\r
+                       if( obj ){\r
+                               obj[ 'url' ] = url;\r
+                       } else {\r
+                               obj = { 'url' : url };\r
+                       };\r
+               } else {\r
+                       obj = url;\r
+               };\r
+               obj[ 'method' ] = 'GET';\r
+               return new X_NET_Queue( X_NET_TYPE_XHR, obj );\r
        },\r
        \r
-       'xhrPost' : function( url, type, postbody ){\r
-               return new X_NET_Queue( X_NET_TYPE_XHR, { method : 'POST', url : url, type : type, postbody : postbody } );\r
+       'xhrPost' : function( url, postbody, obj ){\r
+               if( X_Type_isString( url ) ){\r
+                       if( obj ){\r
+                               obj[ 'url' ] = url;\r
+                       } else {\r
+                               obj = { 'url' : url };\r
+                       };\r
+               } else {\r
+                       obj = url;\r
+               };\r
+               obj[ 'method' ] = 'POST';\r
+               obj[ 'postbody' ] = postbody;\r
+               return new X_NET_Queue( X_NET_TYPE_XHR, obj );\r
        },\r
        \r
        'formGet' : function(){\r
index 6a570fc..4ca0b62 100644 (file)
@@ -101,16 +101,9 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
                                        headers  = obj[ 'headers' ] || {},\r
                                        postbody = obj[ 'postbody' ],\r
                                        timeout  = obj[ 'timeout' ] || 20000,\r
-                                       temp;\r
+                                       tmp;\r
                                \r
-                               if( obj[ 'type' ] ){\r
-                                       this._type = obj[ 'type' ];\r
-                               } else {\r
-                                       temp = X_URL_cleanup( url ).split( '.' );\r
-                                       if( 2 <= temp.length ){\r
-                                               this._type = temp[ temp.length - 1 ].toLowerCase();\r
-                                       };\r
-                               };\r
+                               this._type = obj[ 'type' ] || X_URL_getEXT( url );\r
                                \r
                                if( X_Net_XHR_X_DOMAIN ){\r
                                        if( X_URL_isSameDomain( url ) ){ // isXDomain\r
@@ -159,12 +152,46 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
                                };\r
                                \r
                                // http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_1.html\r
-                               // raw.overrideMimeType()\r
+                               if( !X_Net_XHR_ACTIVE_X && X_Type_isFunction( raw.overrideMimeType ) ){\r
+                                       switch( X_URL_getEXT( url ) ){\r
+                                               case 'html' :\r
+                                               case 'xml' :\r
+                                                       tmp = 'text/xml';\r
+                                                       break;\r
+\r
+                                               case 'mp3' :\r
+                                                       tmp = 'audio/mpeg';\r
+                                                       break;\r
+                                               case 'opus' :\r
+                                               case 'ogg' :\r
+                                                       tmp = 'audio/ogg';\r
+                                                       break;\r
+                                               case 'wav' :\r
+                                                       tmp = 'audio/wav';\r
+                                                       break;                                                  \r
+                                               case 'aac' :\r
+                                                       tmp = 'audio/aac';\r
+                                                       break;\r
+                                               case 'm4a' :\r
+                                                       tmp = 'audio/x-m4a"';\r
+                                                       break;  \r
+                                               case 'mp4' :\r
+                                                       tmp = 'audio/x-mp4';\r
+                                                       break;  \r
+                                               case 'weba' :\r
+                                                       tmp = 'audio/webm';\r
+                                                       break;\r
+                                       };\r
+                                       if( obj[ 'mimeType' ] || tmp ) raw.overrideMimeType( obj[ 'mimeType' ] || tmp );\r
+                                       console.log( this._type );\r
+                                       console.log( obj[ 'mimeType' ] || tmp );\r
+                               };\r
+\r
                                if( !X_Net_XHR_ACTIVE_X && X_Type_isFunction( raw.setRequestHeader ) ){\r
                                        \r
                                        // http://nakigao.sitemix.jp/blog/?p=2040\r
                                        // SafariでHTTP/412のエラー\r
-                                       headers[ 'If-Modified-Since' ] = ( new Date ).toUTCString();\r
+                                       // headers[ 'If-Modified-Since' ] = ( new Date ).toUTCString();\r
                                        \r
                                        for( p in headers ){\r
                                                if( X_EMPTY_OBJECT[ p ] ) continue;\r
@@ -263,10 +290,10 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
                                                                case 1 :\r
                                                                        return;\r
                                                                case 2 : // 0% ajaxstart\r
-                                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : 0 } );\r
+                                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : 0 } );\r
                                                                        return;\r
                                                                case 3 :\r
-                                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : this._percent < 99.9 ? 99.9 : ( this._percent + 100 ) / 2 } );\r
+                                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : this._percent < 99.9 ? 99.9 : ( this._percent + 100 ) / 2 } );\r
                                                                        // 99.9%\r
                                                                        return;\r
                                                                case 4 :\r
@@ -333,14 +360,14 @@ if( X_Net_XHR_W3C || X_Net_XHR_ACTIVE_X ){
 \r
                                                        this[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, data : data } );\r
                                                } else {\r
-                                                       live && this[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : raw.status || 0, percent : 100 } );\r
+                                                       live && this[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : raw.status || 0, 'percent' : 100 } );\r
                                                };\r
                                                break;\r
                                        \r
                                        case 'progress' :\r
                                                if( e.lengthComputable ){\r
                                                        this._percent = e.loaded / e.total;\r
-                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : this._percent } );\r
+                                                       live && this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : this._percent } );\r
                                                };\r
                                                break;\r
                                        \r
index 0263875..905ffd1 100644 (file)
@@ -69,7 +69,7 @@ if( X_Audio_WebAudio_context ){
                                        // TODO 当てにしていたaudioがclose 等した場合
                                        audio.proxy[ 'listenOnce' ]( 'canplaythrough', this, this._onBufferReady );
                                } else {
-                                       this.xhr = X.Net.xhrGet( url, 'arraybuffer' )
+                                       this.xhr = X.Net.xhrGet( url, { type : 'arraybuffer' } )
                                                                        [ 'listen' ]( X_EVENT_PROGRESS, this )
                                                                        [ 'listenOnce' ]( [ X_EVENT_SUCCESS, X_EVENT_COMPLETE, X_EVENT_CANCELED ], this );                                      
                                };
@@ -78,8 +78,8 @@ if( X_Audio_WebAudio_context ){
                        handleEvent : function( e ){
                                switch( e.type ){
                                        case X_EVENT_PROGRESS :
-                                               e.percent ?
-                                                       this.proxy[ 'dispatch' ]( { type : 'progress', percent : e.percent } ) :
+                                               e[ 'percent' ] ?
+                                                       this.proxy[ 'dispatch' ]( { type : 'progress', 'percent' : e[ 'percent' ] } ) :
                                                        this.proxy[ 'dispatch' ]( 'loadstart' );
                                                return;