* 全ての動的メンバを削除して、インスタンスを破棄する。<br>\r
* インスタンスが X.EventDispatcher とそのサブクラスの場合、次の動作をする。\r
* <ol>\r
- * <li>X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X_Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。\r
+ * <li>X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X.Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。\r
* <li>破棄に進む場合は、X.Event.KILL_INSTANCE を発火する。\r
* <li>dispatch 中は、インスタンスの全ての dispatch が終了するまで実際の破棄を待つ。\r
* <li>実際の破棄では、インスタンスのメンバの削除に加えて全てのイベントリスナを解除する。\r
test = X_Node_CSS_FILTER_FIX_PROPS,
filters = [],
n = -1,
- p, id, v, num, ary, params, i, l, dir,
- afterUpdate, impossible;
+ p, id, v, num, vu, u, _v, ary, params, i, l, dir,
+ afterUpdate, impossible, color;
for( p in obj ){
//if( X_EMPTY_OBJECT[ p ] ) continue;
sinY = Math.sin( radian ),
skewX = X_Node_CSS_ieMathRangeFix( params[ 3 ] ), //skew
- skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] );
+ skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ),
_skX = Math.tan( skewX * PI_180 ),
_skY = Math.tan( skewY * PI_180 ),
elm = that[ '_rawObject' ],
filter = elm.style.filter || '',
origin = filter,
- p, v, plus;
+ p, v, plus, id;
for( p in css ){
if( !( id = test[ p ] ) ) continue;
}) :
X_UA_DOM.IE4 ?
(function( that ){
- var font, vu, v, u, _v;
+ var font, vu, v, u, _v, elm;
X_Node_updateTimerID && X_Node_startUpdate();
if( that === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
obj.altY = fallback & 16 ? 'bottom' : 'top';\r
\r
// scale\r
- if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){\r
+ if( obj.toScaleX !== 1 || obj.fromScaleX !== 1 || obj.toScaleY !== 1 || obj.fromScaleY !== 1 ){\r
sameRate = obj.fromScaleX === obj.fromScaleY && obj.toScaleX === obj.toScaleY;\r
\r
if( X_NodeAnime_hasTransform ){\r
*/\r
function X_NodeAnime_detectWaitAnimation( xnode, duration, isTest ){\r
var list = X_NodeAnime_QUEUE,\r
- i = 0, _xnode;\r
+ i = 0, _xnode, obj;\r
\r
for( ; _xnode = list[ i ]; ++i ){\r
if( _xnode === xnode ) break;\r
var args = arguments,
l = args.length - 1,
v, raw, parent, body,
- childX, childY, childW, childH,
+ child, childX, childY, childW, childH,
parentW, parentH,
parentSX, parentSY, parentSW, parentSH,
visibleX, visibleY, visibleW, visibleH,
};
if( name === 'inView' ){
+ if( !( this[ '_flags' ] & X_NodeFlags_IN_TREE ) ) return { 'isInView' : false };
body = X_elmBody;
child = raw;
visibleX = visibleY = visibleW = visibleH = 0;
};
};
+/*
+ * if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){
+ if( anime.phase === 6 ){
+ v = anime.fromScrollX;
+ if( v === v ){
+ elm.scrollLeft = v;
+ } else {
+ anime.fromScrollX = elm.scrollLeft;
+ };
+ v = anime.fromScrollY;
+ if( v === v ){
+ elm.scrollTop = v;
+ } else {
+ anime.fromScrollY = elm.scrollTop;
+ };
+ } else {
+ elm.scrollLeft = anime.scrollX;
+ elm.scrollTop = anime.scrollY;
+ };
+ };
+ */
+
return elm;
}) :
X_UA_DOM.IE4 ?
( function( that, parentElement, prevElement, accumulatedFlags ){
var elm = that[ '_rawObject' ] || X_Node__ie4getRawNode( that ),
- xnodes, l, i, dirty, mix, html, text, prev;
+ xnodes, l, i, dirty, mix, html, text, prev, anime, v;
if( !that[ '_tag' ] ){
that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm );
//{+netform"<form>によるGETとPOST"(動的に生成したフォームによるGETとPOST。)[+net,+ninjaiframe]\r
\r
var X_FormSender_errorTimerID,\r
- X_FormSender_isLeave,\r
+ X_FormSender_isLeave, X_FormSender_isSameDomain,\r
X_FormSender_onloadCount = 0;\r
\r
X_TEMP.X_FormSender_init = function(){\r
load : function( option ){\r
//createURL\r
var params = option[ 'params' ] || {},\r
+ url = option[ 'url' ],\r
target = option[ 'target' ],\r
timeout = option[ 'timeout' ],\r
// http://search.web-sun.com/zatu/charset.html\r
html = [\r
// <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">\r
'<form method="', X_FormSender_escapeQuote( option[ 'method' ] || 'GET' ), \r
- '" action="', X_FormSender_escapeQuote( option[ 'url' ] || '' ), \r
+ '" action="', X_FormSender_escapeQuote( url || '' ), \r
'" target="', X_FormSender_escapeQuote( target ),\r
'">' ];\r
\r
- X_FormSender_isLeave = target === '_top' || target === '_parent';\r
-\r
+ X_FormSender_isLeave = target === '_top' || target === '_parent';\r
+ X_FormSender_isSameDomain = X_URL_isSameDomain( url );\r
\r
for( k in params ){\r
// TODO 使用すべきでない name\r
};\r
\r
if( ++X_FormSender_onloadCount === 1 ){\r
- idoc = this[ '_rawObject' ].contentDocument || this._iwin.document,\r
-\r
- X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } );\r
+ if( X_FormSender_isSameDomain ){\r
+ idoc = this[ '_rawObject' ].contentDocument || this._iwin.document;\r
+ X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } ); \r
+ } else {\r
+ X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS } );\r
+ };\r
};\r
break;\r
case 'ninjaerror' :\r
\r
max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5;\r
\r
- sendStr = X_JSON_stringify( req );\r
+ sendStr = /* X_JSON_stringify */X[ 'JSON' ].stringify( req );\r
\r
while( sendStr.length ){\r
l = max;\r
*/
'requestAuth' : function(){
var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ],
- w, h;
+ w, h, pair;
// TODO pointer event 内か?チェック
if( !e || !e[ 'pointerType' ] ){
* @param {array|string} sourceList\r
* @param {object=} opt_option\r
* @example //\r
- * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] )\r
- .listenOnce( X.Event.READY, onReady );\r
+ * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] ).listenOnce( X.Event.READY, onReady );\r
*/\r
X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](\r
'X.Audio',\r
* @alias Audio.prototype.play\r
* @param {number=} startTime 開始時間を ms で\r
* @param {number=} endTime 終了時間を ms で\r
- * @param {boolean=} endTime に達した際に曲をループさせるか\r
+ * @param {boolean=} loop endTimeに達した際に曲をループさせるか\r
* @param {number=} loopStartTime ループ以後の開始時間を ms で\r
* @param {number=} loopEndTime ループ以後の終了時間を ms で\r
* @return {Audio} メソッドチェーン\r
* @param {object=} obj setter の場合、上書きする値を格納したobject\r
* @return {Audio|object}\r
* @example\r
- * audio.setState(\r
- {\r
- 'startTime' : 0,\r
- 'endTime' : 80000,\r
- 'loopStartTime' : 120000,\r
- 'loopEndTime' : 200000,\r
- 'currentTime' : 0,\r
- 'loop' : true,\r
- 'looded' : false,\r
- 'volume' : 1,\r
- 'autoplay' : true\r
- });\r
+audio.setState(\r
+ {\r
+ 'startTime' : 0,\r
+ 'endTime' : 80000,\r
+ 'loopStartTime' : 120000,\r
+ 'loopEndTime' : 200000,\r
+ 'currentTime' : 0,\r
+ 'loop' : true,\r
+ 'looded' : false,\r
+ 'volume' : 1,\r
+ 'autoplay' : true\r
+});\r
*/\r
'state' : function( obj ){\r
var pair = X_Pair_get( this );\r
/**\r
* ボリュームの setter 実装不十分!\r
* @alias Audio.prototype.volume\r
- * @param {number} v \r
+ * @param {number} v 0~1\r
* @return {Audio}\r
*/\r
'volume' : function( v ){\r
*/\r
'seek' : function( uid, position ){\r
var track = X_AudioSprite_TEMP.tracks[ uid ],\r
- end, strat;\r
+ end, start;\r
if( track ){\r
delete track.seekTime;\r
end = X_Audio_getEndTime( track );\r
var keyCode = e.keyCode, // keyCode says something about the actual keyboard key the user pressed\r
chrCode = e.charCode, // while charCode gives the ASCII value of the resulting character\r
cb = X_CALLBACK_NONE,\r
- special, is10Key, _keyCode;\r
+ special, _keyCode;\r
\r
console.log( e.type + ' > keyCode:' + keyCode + ' chrCode:' + chrCode );\r
\r
};\r
\r
cb = this[ 'dispatch' ]( {\r
- type : 'keydown',\r
- keyCode : keyCode,\r
- charCode : chrCode,\r
- keyName : X_Type_isString( special ) ? special : '',\r
- is10key : !!is10Key,\r
- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
- altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
- metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
+ type : 'keydown',\r
+ keyCode : keyCode,\r
+ charCode : chrCode,\r
+ 'keyName' : X_Type_isString( special ) ? special : '',\r
+ 'is10key' : !!X_KB_lastIs10Key,\r
+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
+ altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
} );\r
\r
if( cb & X_CALLBACK_PREVENT_DEFAULT ){\r
return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb;\r
} else\r
if( keyCode === 32 ){\r
- charCode = 32;\r
+ chrCode = 32;\r
};\r
\r
if( 32 <= chrCode && chrCode <= 126 ){\r
X_KB_TRANSFOEM[ X_KB_lastKeyCode ] = chrCode;\r
\r
cb = this[ 'dispatch' ]( {\r
- type : 'keydown',\r
- keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,\r
- charCode : chrCode,\r
- is10key : X_KB_lastIs10Key,\r
- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
- altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
- metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
+ type : 'keydown',\r
+ keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,\r
+ charCode : chrCode,\r
+ 'is10key' : X_KB_lastIs10Key,\r
+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
+ altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
} );\r
\r
X_KB_lastIs10Key = true;\r
\r
if( ( special = X_KB_SPECIALS[ keyCode ] ) && ( !X_KB_DOWN_KEYS[ keyCode ] && !X_KB_DOWN_KEYS[ special ] ) ){\r
cb |= this[ 'dispatch' ]( {\r
- type : 'keydown',\r
- keyCode : keyCode,\r
- charCode : 0,\r
- keyName : special,\r
- is10key : false,\r
- isVirtual : true,\r
- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
- altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
- metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
+ type : 'keydown',\r
+ keyCode : keyCode,\r
+ charCode : 0,\r
+ 'keyName' : special,\r
+ 'is10key' : false,\r
+ 'isVirtual' : true,\r
+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],\r
+ altKey : !!X_KB_DOWN_KEYS[ 18 ],\r
+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]\r
} );\r
};\r
\r
};\r
\r
cb |= this[ 'dispatch' ]( {\r
- type : 'keyup',\r
- keyCode : keyCode,\r
- charCode : chrCode,\r
- keyName : X_Type_isString( special ) ? special : '',\r
- shiftKey : X_KB_DOWN_KEYS[ 16 ],\r
- ctrlKey : X_KB_DOWN_KEYS[ 17 ],\r
- altKey : X_KB_DOWN_KEYS[ 18 ],\r
- metaKey : X_KB_DOWN_KEYS[ 224 ]\r
+ type : 'keyup',\r
+ keyCode : keyCode,\r
+ charCode : chrCode,\r
+ 'keyName' : X_Type_isString( special ) ? special : '',\r
+ shiftKey : X_KB_DOWN_KEYS[ 16 ],\r
+ ctrlKey : X_KB_DOWN_KEYS[ 17 ],\r
+ altKey : X_KB_DOWN_KEYS[ 18 ],\r
+ metaKey : X_KB_DOWN_KEYS[ 224 ]\r
} );\r
\r
return cb;\r
var newNode,\r
//newPair = X_Pair_get( newNode ),\r
pair = X_Pair_get( this ),\r
- attr, listeners, type, list, i, l, k;\r
+ attr, listeners, type, list, i, l, k, def, f;\r
\r
// attr もコピー\r
if( pair.attrObject ){\r
function X_UI_onMouseOut( e ){
var list = XUI_UINODES_HOVER,
- i = list.length;
+ i = list.length, data;
console.log( 'pointer out!!' + e.type + i + ' ' + e.pointerType );
e = X_Object_copy( e );