-\r
-// ------------------------------------------------------------------------- //\r
-// ------------ local variables -------------------------------------------- //\r
-// ------------------------------------------------------------------------- //\r
-\r
var \r
X_Callback_LIVE_LIST = [],\r
\r
/** @const */\r
X_Callback_FUNC_ONLY = 3,\r
/** @const */\r
- X_Callback_THIS_FUNCNAME = 4,\r
-\r
- /** @const */\r
- X_Callback_NONE = 0,\r
- /** @const */\r
- X_Callback_UN_LISTEN = 1,\r
- /** @const */\r
- X_Callback_STOP_PROPAGATION = 2,\r
- /** @const */\r
- X_Callback_STOP_NOW = 4 | 2, // 同一階層のリスナーのキャンセル(上位へもキャンセル)\r
- /** @const */\r
- X_Callback_PREVENT_DEFAULT = 8, // 結果動作のキャンセル,\r
- /** @const */\r
- X_Callback_CAPTURE_POINTER = 16,\r
- /** @const */\r
- X_Callback_RELEASE_POINTER = 32,\r
- \r
- /** @const */\r
- X_Callback_SYS_CANCEL = 64 | 4 | 2;\r
-\r
-\r
-\r
-/*\r
- * handleEvent という関数のメンバーを持つオブジェクト\r
- * @typedef {{ handleEvent : function }}\r
- */\r
-var listener;\r
+ X_Callback_THIS_FUNCNAME = 4;\r
\r
/**\r
* <p>クロージャに関するポリシーと再利用可能クロージャについて次の記事をご覧ください。\r
* X_Callback_create() で再利用可能なクロージャの作成。次のパターンで呼び出します。<br>\r
* 最大で三つの引数を並べる一連のパターンは、 EventDispatcher.listen unlisten, listening や X.Timer.add, once でも使われますので、ここでよく目を通しておきます。\r
* \r
- * <table>\r
- * <tr><th>this コンテキスト+関数<td>X_Callback_create( thisObject, func )<td>func.call( thisObject );\r
- * <tr><th>this コンテキスト+関数+追加引数<td>X_Callback_create( thisObject, func, [ arg1, ...args ] )<td>func.apply( thisObject, [ arg1, ...args ] );\r
- * <tr><th>listener オブジェクト<td>X_Callback_create( listener )<td>listener.handleEvent(); コールバックに関数でなく handleEvent 関数をメンバに持つオブジェクトを渡すのは NN4 からある javascript のお約束です。\r
- * <tr><th>listener オブジェクト+追加引数<td>X_Callback_create( listener, [ arg1, ...args ] )<td>listener.handleEvent.apply( listener, [ arg1, ...args ] );\r
- * <tr><th>関数<td>X_Callback_create( func )<td>特別な操作は不要なので再利用可能クロージャは作られません。func をそのまま利用します。\r
- * <tr><th>関数+引数<td>X_Callback_create( func, [ arg1, ...args ] )<td>func.apply( ?, [ arg1, ...args ] );\r
- * </table>\r
- * \r
* <h5>再利用可能クロージャの破棄と再利用</h5>\r
* X_Callback_correct() によってクロージャは回収され再利用に備えます。<br>\r
* 実は、クロージャが束縛するのは、this コンテキストやコールバック関数といった、<strong>そのもの</strong>ではなく、それらを一定のルールで格納したハッシュです。<br>\r
name : undefined,\r
/**\r
* コールバックの this コンテキスト。 \r
- * @type {listener|object|undefined}\r
+ * @type {object|undefined}\r
*/\r
context : undefined,\r
/**\r
proxy : X_Callback_proxyCallback\r
};\r
\r
-/**\r
- * X.Timer と X.EventDispatcher からのコールバックの返り値を定義。\r
- * @namespace X.Callback\r
- */\r
-X[ 'Callback' ] = {\r
- /**\r
- * このコールバックでは返り値による操作は無い。\r
- * @alias X.Callback.NONE\r
- */\r
- 'NONE' : X_Callback_NONE,\r
- /**\r
- * X.Timer, X.EventDispatcher のコールバックでタイマーやイベントリスナの解除に使用。\r
- * @alias X.Callback.UN_LISTEN\r
- */\r
- 'UN_LISTEN' : X_Callback_UN_LISTEN,\r
- /**\r
- * 上位階層へのイベント伝播のキャンセル。DOM イベントのコールバックの戻り値に指定すると e.stopPropagation() が呼ばれる。\r
- * @alias X.Callback.STOP_PROPAGATION\r
- */\r
- 'STOP_PROPAGATION' : X_Callback_STOP_PROPAGATION,\r
- /**\r
- * 以降のイベントのディスパッチを中断する。STOP_PROPAGATION との違いは、次に控えているコールバックもキャンセルされる点。但し system によって追加されたイベントはキャンセルされない。\r
- * @alias X.Callback.STOP_NOW\r
- */\r
- 'STOP_NOW' : X_Callback_STOP_NOW,\r
- /**\r
- * DOM イベントのコールバックの戻り値に指定すると e.preventDefault() が呼ばれる。\r
- * またフレームワーク内で定義されたデフォルト動作の回避にも使用される。\r
- * @alias X.Callback.PREVENT_DEFAULT\r
- */\r
- 'PREVENT_DEFAULT' : X_Callback_PREVENT_DEFAULT,\r
- /**\r
- * X.UI の uinode でポインターイベントの戻り値に指定すると、以降のポインターベントを独占する。\r
- * @alias X.Callback.CAPTURE_POINTER\r
- */\r
- 'CAPTURE_POINTER' : X_Callback_CAPTURE_POINTER,\r
- /**\r
- * X.UI の uinode でポインターイベントの戻り値に指定すると、以降のポインターベントを独占を解除する。\r
- * @alias X.Callback.RELEASE_POINTER\r
- */\r
- 'RELEASE_POINTER' : X_Callback_RELEASE_POINTER\r
-};\r
-\r
// ------------------------------------------------------------------------- //\r
// --- implements ---------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
funcName = funcName || 'handleEvent';\r
temp = thisObj[ funcName ];\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
+ return args.length === 0 ? thisObj[ funcName ]() :\r
+ args.length === 1 ? thisObj[ funcName ]( args[ 0 ] ) : temp.apply( thisObj, args );\r
};\r
break;\r
/*\r
};\r
function X_Callback_gc(){\r
X_Callback_POOL_LIST.length = 0; // ?\r
-};\r
-\r
-X_TEMP.onSystemReady.push( function( sys ){\r
- sys.monitor( X_Callback_monitor );\r
- sys.gc( X_Callback_gc );\r
-});\r
-\r
-\r
-console.log( 'X.Core.Callback' );\r
-\r
+};
\ No newline at end of file