* コールバックの種類を表す数値。 this + function, this.handleEvent, function only がある。\r
* @type {number} \r
*/\r
- kind : X_CLOSURE_THIS_FUNC,\r
+ cbKind : X_CLOSURE_THIS_FUNC,\r
/**\r
* コールバック。\r
* @type {funciton|undefined} \r
* コールバック名。コールバック作成時に関数が無い、関数が入れ替わっていても動作する。\r
* @type {string|undefined} \r
*/\r
- name : undefined,\r
+ funcName : undefined,\r
/**\r
* コールバックの this コンテキスト。 \r
* @type {object|undefined}\r
var obj = X_Closure_classifyCallbackArgs( thisObject, opt_callback, opt_args ),\r
l, ret, _obj;\r
\r
- if( !obj.kind ) return obj;\r
+ if( !obj.cbKind ) return obj;\r
\r
if( l = X_CLOSURE_POOL_LIST.length ){\r
ret = X_CLOSURE_POOL_LIST[ l - 1 ]; --X_CLOSURE_POOL_LIST.length; // ret = X_CLOSURE_POOL_LIST.pop();\r
_obj = ret( X_Closure_COMMAND_BACK );\r
\r
- _obj.kind = obj.kind;\r
- _obj.name = obj.name;\r
+ _obj.cbKind = obj.cbKind;\r
+ _obj.funcName = obj.funcName;\r
_obj.func = obj.func;\r
_obj.context = obj.context;\r
_obj.supplement = obj.supplement;\r
var obj;\r
\r
if( X_Type_isObject( arg1 ) && X_Type_isFunction( arg2 ) ){\r
- obj = { context : arg1, func : arg2, kind : X_CLOSURE_THIS_FUNC };\r
+ obj = { context : arg1, func : arg2, cbKind : X_CLOSURE_THIS_FUNC };\r
} else\r
if( X_Type_isObject( arg1 ) ){\r
if( arg2 && X_Type_isString( arg2 ) ){\r
- obj = { context : arg1, name : arg2, kind : X_CLOSURE_THIS_FUNCNAME };\r
+ obj = { context : arg1, funcName : arg2, cbKind : X_CLOSURE_THIS_FUNCNAME };\r
} else {\r
- obj = { context : arg1, kind : X_CLOSURE_HANDLEEVENT };\r
+ obj = { context : arg1, cbKind : X_CLOSURE_HANDLEEVENT };\r
arg3 = arg2; \r
};\r
} else\r
if( X_Type_isFunction( arg1 ) ){\r
arg3 = arg2;\r
if( alt_context ){\r
- obj = { context : alt_context, func : arg1, kind : X_CLOSURE_THIS_FUNC };\r
+ obj = { context : alt_context, func : arg1, cbKind : X_CLOSURE_THIS_FUNC };\r
} else {\r
- obj = { func : arg1, kind : X_CLOSURE_FUNC_ONLY };\r
+ obj = { func : arg1, cbKind : X_CLOSURE_FUNC_ONLY };\r
};\r
} else\r
if( X_Type_isFunction( arg2 ) ){\r
//console.log( 'X_Closure_classifyCallbackArgs : arg1 が ' + arg1 + 'です' ); ie4 で error\r
if( alt_context ){\r
- obj = { context : alt_context, func : arg2, kind : X_CLOSURE_THIS_FUNC };\r
+ obj = { context : alt_context, func : arg2, cbKind : X_CLOSURE_THIS_FUNC };\r
} else {\r
- obj = { func : arg2, kind : X_CLOSURE_FUNC_ONLY };\r
+ obj = { func : arg2, cbKind : X_CLOSURE_FUNC_ONLY };\r
};\r
} else\r
if( alt_context && X_Type_isString( arg1 ) ){\r
arg3 = arg2;\r
- obj = { context : alt_context, name : arg1, kind : X_CLOSURE_THIS_FUNCNAME };\r
+ obj = { context : alt_context, funcName : arg1, cbKind : X_CLOSURE_THIS_FUNCNAME };\r
} else\r
if( alt_context ){\r
- obj = { context : alt_context, kind : X_CLOSURE_HANDLEEVENT };\r
+ obj = { context : alt_context, cbKind : X_CLOSURE_HANDLEEVENT };\r
arg3 = arg1;\r
} else {\r
console.log( '不正 ' + arg1 );\r
args = temp;\r
};\r
\r
- switch( xfunc.kind ){\r
+ switch( xfunc.cbKind ){\r
\r
case X_CLOSURE_THIS_FUNC :\r
return args.length === 0 ? func.call( thisObj ) : func.apply( thisObj, args );\r
\r
case X_CLOSURE_THIS_FUNCNAME :\r
- funcName = xfunc.name;\r
+ funcName = xfunc.funcName;\r
case X_CLOSURE_HANDLEEVENT :\r
funcName = funcName || 'handleEvent';\r
temp = thisObj[ funcName ];\r
X_CLOSURE_POOL_LIST[ X_CLOSURE_POOL_LIST.length ] = f;\r
obj = f( X_Closure_COMMAND_BACK );\r
/*\r
- delete obj.kind;\r
- if( obj.name ) delete obj.name;\r
+ delete obj.cbKind;\r
+ if( obj.funcName ) delete obj.funcName;\r
if( obj.func ) delete obj.func;\r
if( obj.context ) delete obj.context;\r
if( obj.supplement ) delete obj.supplement;\r
klass[ 'name' ] = displayName;\r
\r
if( opt_abstract ){\r
- classDef.Abstract = true;\r
+ classDef.isAbstract = true;\r
} else\r
if( opt_pool ){\r
classDef.pool = [];\r
def = f.classDef,\r
instance, obj;\r
\r
- if( def.Abstract ){\r
+ if( def.isAbstract ){\r
X.Logger.critical( 'AbstractClass!' );\r
return;\r
};\r
\r
/**\r
* イベントリスナをイベント名文字列や数値(5以上、フレームワーク内で定義)をキーとするArrayで記憶します。<br>\r
- * Arrayには、{kind:種類,context:コンテキスト(thisObject),func:コールバック関数,supplement:サプリメントする引数の配列} というハッシュ、または関数が蓄えられています。\r
+ * Arrayには、{cbKind:種類,context:コンテキスト(thisObject),func:コールバック関数,supplement:サプリメントする引数の配列} というハッシュ、または関数が蓄えられています。\r
* \r
* @private\r
* @type {__Listeners__}\r
if( opt_arg1 === undefined ) return X_EventDispatcher_needsIndex ? 0 : true;\r
\r
// TODO callbackHash か?判定が不十分! skipConvertion\r
- if( opt_arg1.kind ){\r
+ if( opt_arg1.cbKind ){\r
cbHash = opt_arg1;\r
} else {\r
cbHash = X_Closure_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
if( ( unlistens = listeners[ X_LISTENERS_UNLISTENS ] ) && ( unlistens = unlistens[ opt_type ] ) ){\r
for( i = unlistens.length; i; ){\r
f = unlistens[ --i ];\r
- if( f === cbHash || ( f.context === cbHash.context && f.func === cbHash.func && f.name === cbHash.name && f.supplement === cbHash.supplement && f.lock === lock ) ) return false;\r
+ if( f === cbHash || ( f.context === cbHash.context && f.func === cbHash.func && f.funcName === cbHash.funcName && f.supplement === cbHash.supplement && f.lock === lock ) ) return false;\r
};\r
};\r
\r
for( i = list.length; i; ){\r
f = list[ --i ];\r
- if( f === cbHash || ( f.context === cbHash.context && f.func === cbHash.func && f.name === cbHash.name && f.supplement === cbHash.supplement && f.lock === lock ) ){\r
+ if( f === cbHash || ( f.context === cbHash.context && f.func === cbHash.func && f.funcName === cbHash.funcName && f.supplement === cbHash.supplement && f.lock === lock ) ){\r
// index を要求された場合、lock されていない、または unlock なら index を返す\r
return X_EventDispatcher_needsIndex ? i : true;\r
};\r
f;\r
i === 0 && ( X_Timer_requestID = X_Timer_REQ_ANIME_FRAME( X_Timer_onEnterFrame ) );\r
f = X_Closure_classifyCallbackArgs( args1, args2, args3 );\r
- if( !f.kind ) f = { func : f };\r
+ if( !f.cbKind ) f = { func : f };\r
X_Timer_REQ_FRAME_LIST[ i ] = f;\r
- return f.uid = ++X_Timer_uid;\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_Closure_classifyCallbackArgs( args1, args2, args3 );\r
- if( !f.kind ) f = { func : f };\r
+ if( !f.cbKind ) f = { func : f };\r
X_Timer_REQ_FRAME_LIST[ i ] = f;\r
- return f.uid = ++X_Timer_uid;\r
+ return f._uid = ++X_Timer_uid;\r
}),\r
\r
/**\r
X_Timer_removal[ uid ] = true;\r
} else {\r
for( ; i; ){\r
- if( ( f = list[ --i ] ).uid < uid ) break;\r
- if( f.uid == uid ){\r
+ if( ( f = list[ --i ] )._uid < uid ) break;\r
+ if( f._uid == uid ){\r
list.splice( i, 1 );\r
// gecko では cancelRequestAnimationFrame が無い場合がある\r
l === 1 && X_Timer_CANCEL_ANIME_FRAME && X_Timer_CANCEL_ANIME_FRAME( X_Timer_requestID );\r
X_Timer_removal[ uid ] = true;\r
} else {\r
for( ; i; ){\r
- if( ( f = list[ --i ] ).uid < uid ) break;\r
- if( f.uid == uid ){\r
+ if( ( f = list[ --i ] )._uid < uid ) break;\r
+ if( f._uid == uid ){\r
list.splice( i, 1 );\r
l === 1 && X_Timer_remove( X_Timer_requestID );\r
break;\r
hash = X_Closure_classifyCallbackArgs( args1, args2, args3 );\r
if( !hash ) return -1; // dev only\r
\r
- if( !hash.kind ) hash = { func : hash };\r
- hash.time = time;\r
- hash.last = time;\r
- hash.count = opt_count;\r
- hash.uid = ++X_Timer_uid;\r
+ if( !hash.cbKind ) hash = { func : hash };\r
+ hash._time = time;\r
+ hash.last = time;\r
+ hash._count = opt_count;\r
+ hash._uid = ++X_Timer_uid;\r
list[ list.length ] = hash;\r
\r
!X_Timer_busyTimeout && X_Timer_update();\r
X_Timer_removal[ uid ] = true;\r
} else {\r
for( ; i; ){\r
- if( ( q = list[ --i ] ).uid == uid ){ // 数字の場合と文字の場合がある\r
+ if( ( q = list[ --i ] )._uid == uid ){ // 数字の場合と文字の場合がある\r
list.splice( i, 1 );\r
\r
/*\r
for( ; i < l; ++i ){\r
q = list[ i ];\r
if(\r
- ( X_Timer_removal && X_Timer_removal[ q.uid ] ) || // timerId は remove 登録されている\r
+ ( X_Timer_removal && X_Timer_removal[ q._uid ] ) || // timerId は remove 登録されている\r
0 < ( q.last -= minus ) || // 時間が経過していない\r
heavy && ( q.last = 1 ) // 時間は経過したが、ヘビーフラグが立っている\r
){\r
continue;\r
};\r
- c = q.count;\r
+ c = q._count;\r
\r
- X_Timer_currentUID = q.uid;\r
+ X_Timer_currentUID = q._uid;\r
\r
- if( q.kind ){\r
+ if( q.cbKind ){\r
r = X_Closure_proxyCallback( q, [] );\r
} else {\r
r = q.func();\r
--l;\r
continue;\r
} else\r
- if( 1 < c ) --q.count;\r
- q.last = q.time;\r
+ if( 1 < c ) --q._count;\r
+ q.last = q._time;\r
};\r
X_Timer_timerId = X_Timer_currentUID = 0;\r
X_Timer_busyTimeout = false;\r
// http://jsfiddle.net/warby_/X8YUZ/ Chrome で return が 0 の場合の挙動が他のブラウザと異なる\r
function X_Timer_compareQueue( a, b ){\r
if( a.last === b.last ){ // Chrome のみ\r
- return a.uid - b.uid;\r
+ return a._uid - b._uid;\r
};\r
return a.last - b.last;\r
// return a.last <= b.last ? -1 : 1; //a.last === b.last ? 0 : 1;\r
for( ; i < l; ++i ){\r
q = list[ i ];\r
\r
- if( X_Timer_removal && X_Timer_removal[ q.uid ] ) continue;\r
+ if( X_Timer_removal && X_Timer_removal[ q._uid ] ) continue;\r
\r
- if( q.kind ){\r
+ if( q.cbKind ){\r
X_Closure_proxyCallback( q, args || ( args = [ time ] ) );\r
} else {\r
q.func( time );\r
};
f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort[ 'listen' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort[ 'listen' ]( type, this, f.func, f.supplement );
} else {
X_ViewPort[ 'listen' ]( type, arg1, arg2, arg3 );
};
f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort[ 'listenOnce' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort[ 'listenOnce' ]( type, this, f.func, f.supplement );
} else {
X_ViewPort[ 'listenOnce' ]( type, arg1, arg2, arg3 );
'unlisten' : function( type, arg1, arg2, arg3 ){
var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort[ 'unlisten' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort[ 'unlisten' ]( type, this, f.func, f.supplement );
} else {
X_ViewPort[ 'unlisten' ]( type, arg1, arg2, arg3 );
'listening' : function( type, arg1, arg2, arg3 ){
var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
return X_ViewPort[ 'listening' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
return X_ViewPort[ 'listening' ]( type, this, f.func, f.supplement );
};
return X_ViewPort[ 'listening' ]( type, arg1, arg2, arg3 );
};
f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort_document[ 'listen' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort_document[ 'listen' ]( type, this, f.func, f.supplement );
} else {
X_ViewPort_document[ 'listen' ]( type, arg1, arg2, arg3 );
};
f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort_document[ 'listenOnce' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort_document[ 'listenOnce' ]( type, this, f.func, f.supplement );
};
X_ViewPort_document[ 'listenOnce' ]( type, arg1, arg2, arg3 );
'unlisten' : function( type, arg1, arg2, arg3 ){
var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
X_ViewPort_document[ 'unlisten' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
X_ViewPort_document[ 'unlisten' ]( type, this, f.func, f.supplement );
} else {
X_ViewPort_document[ 'unlisten' ]( type, arg1, arg2, arg3 );
'listening' : function( type, arg1, arg2, arg3 ){
var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 );
- if( !f.kind ){
+ if( !f.cbKind ){
return X_ViewPort_document[ 'listening' ]( type, this, arg1 );
} else
- if( f.kind === X_CLOSURE_FUNC_ONLY ){
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){
return X_ViewPort_document[ 'listening' ]( type, this, f.func, f.supplement );
};
return X_ViewPort_document[ 'listening' ]( type, arg1, arg2, arg3 );
} else {
return undefined;
};
- return isFinite( r + b + g ) ? ( r << 16 ) + ( g << 8 ) + b : undefined;
+ return X_Type_isFinite( r + b + g ) ? ( r << 16 ) + ( g << 8 ) + b : undefined;
};
function X_Node_CSS_objToCssText( that, skipFilter ){
// Clean up any remaining tags\r
X_HTMLParser_parseEndTag( stack, handler );\r
\r
- async && handler.complete();\r
+ async && handler.asyncComplete();\r
};\r
\r
function X_HTMLParser__parseStartTag( stack, last, handler, html ){\r
empty = empty || X_Dom_DTD_EMPTY[ tagUpper ];\r
!empty && ( stack[ stack.length ] = handler.isXML ? tagName : tagUpper );\r
\r
- if( handler.start( handler.isXML ? tagName : tagUpper, attrs, empty, i ) === false ) return false;\r
+ if( handler.tagStart( handler.isXML ? tagName : tagUpper, attrs, empty, i ) === false ) return false;\r
\r
return i;\r
};\r
name = name.toLowerCase();\r
value = X_Node_Attr_noValue[ name ] === 1 ? name : value;\r
attrs[ attrs.length ] = {\r
- name : name,\r
- value : value,\r
- escaped :\r
+ attName : name,\r
+ // attrValue : value,\r
+ escaped :\r
value.indexOf( '"' ) !== -1 ?\r
value.split( '"' ).join( '\\"' ).split( '\\\\"' ).join( '\\"' ) :\r
value\r
if ( 0 <= pos ) {\r
// Close all the open elements, up the stack\r
for ( ; pos < i; )\r
- handler.end( stack[ --i ] );\r
+ handler.tagEnd( stack[ --i ] );\r
\r
// Remove the open elements from the stack\r
stack.length = pos;\r
X_HTMLParser_htmlStringToXNode.flat.length = 0;\r
!X_HTMLParser_htmlStringToXNode.ignoreError && X.Logger.warn( 'X_Dom_Parser() error ' + html );\r
},\r
- start : function( tagName, attrs, noChild, length ){\r
+ tagStart : function( tagName, attrs, noChild, length ){\r
var xnode,\r
nest = X_HTMLParser_htmlStringToXNode.nest,\r
flat = X_HTMLParser_htmlStringToXNode.flat,\r
name = attr;\r
_attrs[ name ] = true;\r
} else {\r
- name = attr.name;\r
+ name = attr.attName;\r
_attrs[ name ] = attr.escaped;\r
};\r
};\r
xnode[ 'attr' ]( _attrs );\r
};\r
},\r
- end : function(){\r
+ tagEnd : function(){\r
0 < X_HTMLParser_htmlStringToXNode.nest.length && ( --X_HTMLParser_htmlStringToXNode.nest.length );\r
},\r
chars : function( text ){\r
X_HTMLParser_htmlStringToXNode.err( html );\r
this[ 'asyncDispatch' ]( X_EVENT_ERROR );\r
},\r
- start : X_HTMLParser_htmlStringToXNode.start,\r
- end : X_HTMLParser_htmlStringToXNode.end,\r
- chars : X_HTMLParser_htmlStringToXNode.chars,\r
- comment : X_emptyFunction,\r
+ tagStart : X_HTMLParser_htmlStringToXNode.tagStart,\r
+ tagEnd : X_HTMLParser_htmlStringToXNode.tagEnd,\r
+ chars : X_HTMLParser_htmlStringToXNode.chars,\r
+ comment : X_emptyFunction,\r
\r
progress : function( pct ){\r
this[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, percent : pct } );\r
},\r
- complete : function(){\r
+ asyncComplete : function(){\r
var ret = X_HTMLParser_htmlStringToXNode.flat;\r
delete X_HTMLParser_htmlStringToXNode.flat;\r
this[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, xnodes : ret } );\r
'UnityEnabled' : X_Pulgin_UNITY_ENABLED,
- 'QuickTime' : X_Pulgin_QUICKTIME_VERSION,
+ //'QuickTime' : X_Pulgin_QUICKTIME_VERSION,
'GearsEnabled' : !!X_Pulgin_GEARS_ENABLED
console.log( v + ' ' + _v );\r
v = _v;\r
} else\r
- if( ( percent || minusPct ) && v.lastIndexOf( '%' ) !== -1 && isFinite( _v = parseFloat( v ) ) && v === _v + '%' ){\r
+ if( ( percent || minusPct ) && v.lastIndexOf( '%' ) !== -1 && X_Type_isFinite( _v = parseFloat( v ) ) && v === _v + '%' ){\r
// good\r
} else\r
- if( ( length || minusLen ) && v.lastIndexOf( 'em' ) !== -1 && isFinite( _v = parseFloat( v ) ) && v === _v + 'em' ){\r
+ if( ( length || minusLen ) && v.lastIndexOf( 'em' ) !== -1 && X_Type_isFinite( _v = parseFloat( v ) ) && v === _v + 'em' ){\r
v = _v;\r
} else \r
if( v.indexOf( ' ' ) !== -1 ){\r
};\r
};\r
\r
- arg1 && arg1.kind ? ( f = arg1 ) : ( f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ) );\r
- if( !f.kind ){\r
+ arg1 && arg1.cbKind ? ( f = arg1 ) : ( f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ) );\r
+ if( !f.cbKind ){\r
return X_EventDispatcher_listen.call( this, type, this.User, f );\r
} else\r
- if( f.kind === X_CLOSURE_FUNC_ONLY ){\r
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){\r
return X_EventDispatcher_listen.call( this, type, this.User, f.func, f.supplement );\r
};\r
return X_EventDispatcher_listen.apply( this, arguments );\r
};\r
};\r
};\r
- arg1 && arg1.kind ? ( f = arg1 ) : ( f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ) );\r
- if( !f.kind ){\r
+ arg1 && arg1.cbKind ? ( f = arg1 ) : ( f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ) );\r
+ if( !f.cbKind ){\r
return X_EventDispatcher_unlisten.apply( this, [ type, this.User, f ] );\r
} else\r
- if( f.kind === X_CLOSURE_FUNC_ONLY ){\r
+ if( f.cbKind === X_CLOSURE_FUNC_ONLY ){\r
return X_EventDispatcher_unlisten.apply( this, [ type, this.User, f.func, f.supplement ] );\r
};\r
return X_EventDispatcher_unlisten.apply( this, arguments );\r
list = listeners[ type ];\r
for( i = 0, l = list.length; i < l; ++i ){\r
f = list[ i ];\r
- switch( f.kind ){\r
+ switch( f.cbKind ){\r
case X_CLOSURE_THIS_FUNC :\r
if( f.lock ){\r
X_EventDispatcher_systemListen( newNode, type, f.context === this ? newNode : f.context, f.func, f.supplement );\r