OSDN Git Service

Version 0.6.145, fix X.Audio, fix VIEW_ACTIVATE Event @X.ViewPort.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 13_XEventDispatcher.js
index 946cbfc..0b83d8d 100644 (file)
@@ -50,14 +50,12 @@ var X_EventDispatcher_once       = false,
        \r
        X_EventDispatcher_safariPreventDefault = false, // Safari3-\r
        \r
-       /**\r
-        * @enum {number} \r
-        */\r
-       X_EventDispatcher_EVENT_TARGET_TYPE = {\r
-               OTHER        : 0,\r
-               XHR          : 1,\r
-               SILVER_LIGHT : 2\r
-       },\r
+       /* @const */\r
+       X_EventDispatcher_EVENT_TARGET_OTHER        = 0,\r
+       /* @const */\r
+       X_EventDispatcher_EVENT_TARGET_XHR          = 1,\r
+       /* @const */\r
+       X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT = 2,\r
        \r
        X_EventDispatcher_LAZY_TIMERS = {}; // Object.<number, X.EventDispatcher> number は timerID\r
 \r
@@ -117,7 +115,7 @@ var X_EventDispatcher = X[ 'EventDispatcher' ] =
                 * @private\r
                 * @type {number}\r
                 */\r
-                       '_rawType'      : X_EventDispatcher_EVENT_TARGET_TYPE.OTHER,\r
+                       '_rawType'      : X_EventDispatcher_EVENT_TARGET_OTHER,\r
                \r
                /**\r
                 * イベントリスナをイベント名文字列や数値(1~,フレームワーク内で定義)をキーとするArrayで記憶します。<br>\r
@@ -252,7 +250,7 @@ var X_EventDispatcher = X[ 'EventDispatcher' ] =
  * dispatch のコールバック中で unlisten() が呼ばれた場合、即座に反映され削除されたイベントリスナーは呼ばれない。\r
  * @alias EventDispatcher.prototype.dispatch\r
  * @param {eventHash|string|number} e\r
- * @return {number} X.Callback で定義された数値\r
+ * @return {number} X.Callback で定義された数値(ビットフラグ)\r
  */\r
 function X_EventDispatcher_dispatch( e ){\r
        var listeners = this[ '_listeners' ],\r
@@ -297,11 +295,12 @@ function X_EventDispatcher_dispatch( e ){
                        };\r
                        unlistens.indexOf( f ) === -1 && ( unlistens[ unlistens.length ] = f );\r
                };\r
-\r
+               ret |= X_Type_isFinite( r ) ? r : 0;\r
+               \r
                if( r & X_Callback_STOP_NOW ){\r
                        sysOnly = true;\r
-               };\r
-               ret |= X_Type_isFinite( r ) ? r : 0;\r
+                       break;\r
+               };              \r
        };\r
        \r
        if( ( --listeners[ X_Listeners_.DISPATCHING ] ) === 0 ){\r
@@ -550,12 +549,12 @@ var X_EventDispatcher_actualAddEvent =
                (function( that, type, raw, list ){\r
                        var f;\r
                        switch( that[ '_rawType' ] ){\r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                        break;\r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        if( X_UA[ 'Opera' ] < 12 ){\r
                                                // Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
                                                raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
@@ -587,12 +586,12 @@ var X_EventDispatcher_actualAddEvent =
                (function( that, type, raw, list ){\r
                        var f;\r
                        switch( that[ '_rawType' ] ){   \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                        break;                          \r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        // ie8- の XHR は window.event が更新されないため, eventType 毎に callback を指定する\r
                                        raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                                        break;\r
@@ -610,13 +609,13 @@ var X_EventDispatcher_actualAddEvent =
                }) :\r
                (function( that, type, raw, list ){\r
                        switch( that[ '_rawType' ] ){\r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        // DOM0 で Silverlight ってあるの -> ie4 mobile?\r
                                        list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw.AddEventListener( type, list.slcallback );\r
                                        break;                          \r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        // ie4 mobile は XHR をサポート!\r
                                        raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                                        break;\r
@@ -662,14 +661,14 @@ var X_EventDispatcher_actualRemoveEvent =
        X_UA_EVENT.W3C ?\r
                (function( that, type, raw, list, skip ){\r
                        switch( that[ '_rawType' ] ){\r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw.RemoveEventListener( type, list.sltoken ); // token\r
                                        X_Callback_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        if( X_UA[ 'Opera' ] < 12 ){\r
                                                // Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
                                                X_Callback_correct( raw[ 'on' + type ] );\r
@@ -700,14 +699,14 @@ var X_EventDispatcher_actualRemoveEvent =
        X_UA_EVENT.IE ?\r
                (function( that, type, raw, list, skip ){\r
                        switch( that[ '_rawType' ] ){\r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw.RemoveEventListener( type, list.sltoken ); // token\r
                                        X_Callback_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        X_Callback_correct( raw[ 'on' + type ] );\r
                                        raw[ 'on' + type ] = X_emptyFunction;\r
                                        raw[ 'on' + type ] = '';\r
@@ -729,14 +728,14 @@ var X_EventDispatcher_actualRemoveEvent =
                }) :\r
                (function( that, type, raw, list, skip ){\r
                        switch( that[ '_rawType' ] ){\r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.SILVER_LIGHT :\r
+                               case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw.RemoveEventListener( type, list.sltoken ); // token\r
                                        X_Callback_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
                                \r
-                               case X_EventDispatcher_EVENT_TARGET_TYPE.XHR :\r
+                               case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        X_Callback_correct( raw[ 'on' + type ] );\r
                                        raw[ 'on' + type ] = X_emptyFunction;\r
                                        raw[ 'on' + type ] = '';\r