OSDN Git Service

Version 0.6.57, fixed NS of X.UI & X.Class for __proto__.
[pettanr/clientJs.git] / 0.6.x / js / ui / 05_XUI_Gesture.js
index 1c7dc77..bf89d47 100644 (file)
@@ -36,7 +36,7 @@
                        gestures   = Detection.gestures,\r
                        numTouches = 0,// count the total touches on the screen\r
                        pointerType, i, l, touches, ret, active, gesture, startEv,\r
-                       deltaTime, deltaX, deltaY, velocity;\r
+                       hammer, deltaTime, deltaX, deltaY, velocity;\r
 \r
                if( !type ) return;\r
                \r
                        type |= POINTER;\r
                        switch( e.pointerType ){\r
                                case 'touch' :\r
-                               case e.MSPOINTER_TYPE_TOUCH :\r
+                               case 2       : //e.MSPOINTER_TYPE_TOUCH :\r
                                        type |= TOUCH; break;\r
                                case 'pen' :\r
-                               case e.MSPOINTER_TYPE_PEN :\r
+                               case 3     : //e.MSPOINTER_TYPE_PEN :\r
                                        type |= PEN; break;\r
                                case 'mouse' :\r
-                               case e.MSPOINTER_TYPE_MOUSE :\r
+                               case 4       : //e.MSPOINTER_TYPE_MOUSE :\r
                                        type |= MOUSE; break;\r
                                default :\r
                                        return;\r
                                        target     : e.target\r
                                }];\r
                        };\r
-\r
                        // if we are in a end event, but when we remove one touch and\r
                        // we still have enough, set eventType to move\r
                        if( 0 < numTouches && type & END ){ // eventType === Hammer.EVENT_END ){\r
                        Detection.register( Gestures[ name ] );\r
                };\r
 \r
-               if( navigator.pointerEnabled || navigator.msPointerEnabled ){\r
+               if( X.Dom.EVENT_POINTER ){\r
                        Hammer.EVENT_TYPES_START = [ X.UI.Event._POINTER_DOWN ];\r
                        types = [ X.UI.Event._POINTER_MOVE, X.UI.Event._POINTER_UP, X.UI.Event._POINTER_CANCEL ];\r
                } else\r
-               if( window.ontouchstart !== void 0 ){\r
+               if( X.Dom.EVENT_TOUCH ){\r
                        Hammer.EVENT_TYPES_START = [ X.UI.Event._TOUCH_START ];\r
                        types = [ X.UI.Event._TOUCH_MOVE, X.UI.Event._MOUSE_MOVE, X.UI.Event._TOUCH_END, X.UI.Event._TOUCH_CANCEL ];\r
                } else {\r
                if( !this.types[ type ] ) return;\r
                var e = Utils.extend( {}, gesture );\r
                e.type = type;\r
-               console.log( 'trigger : ' + type );\r
                return this.uinode.dispatch( e );\r
        };\r
        \r
        /*\r
         *  "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
         */\r
-       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( function( ua, i ){\r
-                               if( ( i = ua.indexOf('android') ) === -1 ) return false;\r
-                               return ( parseFloat( ua.substr( i + 8 ) ) || 0 ) < 2.2;\r
-                       })( navigator.userAgent.toLowerCase() );\r
+       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && X.UA.Android < 2.2;\r
        \r
        // detect touchevents\r
        Hammer.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled;\r
         * @events  hold holdend\r
         */\r
        Gestures.Hold = {\r
-               name  : 'hold',\r
-               index : 10,\r
+               name    : 'hold',\r
+               index   : 10,\r
                startID : X.UI.Event.HOLD,\r
                endID   : X.UI.Event.HOLD_END,\r
                defaults : {\r
                                        return hammer.trigger( X.UI.Event.DOUBLE_TAP, e );\r
                                } else\r
                                // do a single tap\r
-                               if( hammer.options.tap_always ){\r
+                               if( hammer.options.tap_always && Detection.current.name !== 'tap' ){ // EventFire中にalert すると mouseleave で再び呼ばれるのを防ぐ\r
                                        Detection.current.name = 'tap';\r
-                                       return hammer.trigger(  X.UI.Event.TAP, e );\r
+                                       return hammer.trigger( X.UI.Event.TAP, e );\r
                                };\r
                        };\r
                }\r
         * @events  swipe, swipeleft, swiperight, swipeup, swipedown\r
         */\r
        Gestures.Swipe = {\r
-               name : 'swipe',\r
-               index : 40,\r
+               name     : 'swipe',\r
+               index    : 40,\r
                startID  : X.UI.Event.SWIP,\r
                endID    : X.UI.Event.SWIP_DOWN,\r
                defaults : {\r
                        // set 0 for unlimited, but this can conflict with transform\r
                        swipe_max_touches : 1,\r
-                       swipe_velocity : 0.7\r
+                       swipe_velocity    : 0.7\r
                },\r
                handler : function swipeGesture(e, hammer) {\r
                        if( e.eventType === END ){\r
         * @events  drag, dragstart, dragend, drapleft, dragright, dragup, dragdown\r
         */\r
        Gestures.Drag = {\r
-               name : 'drag',\r
-               index : 50,\r
+               name     : 'drag',\r
+               index    : 50,\r
                startID  : X.UI.Event.DRAG,\r
                endID    : X.UI.Event.DRAG_DOWN,\r
                defaults : {\r
         * @events  transform, transformstart, transformend, pinch, pinchin, pinchout, rotate\r
         */\r
        Gestures.Transform = {\r
-               name : 'transform',\r
-               index : 45,\r
+               name     : 'transform',\r
+               index    : 45,\r
                startID  : X.UI.Event.TRANSFORM,\r
                endID    : X.UI.Event.ROTATE,\r
                defaults : {\r
         * @events  touch\r
         */\r
        Gestures.Touch = {\r
-               name : 'touch',\r
-               index : -Infinity,\r
+               name     : 'touch',\r
+               index    : -Infinity,\r
                defaults : {\r
                        // call preventDefault at touchstart, and makes the element blocking by\r
                        // disabling the scrolling of the page, but it improves gestures like\r
         * @events  release\r
         */\r
        Gestures.Release = {\r
-               name : 'release',\r
-               index : Infinity,\r
+               name    : 'release',\r
+               index   : Infinity,\r
                handler : function releaseGesture( e, hammer ){\r
                        e.eventType === END && hammer.trigger( this.name, e );\r
                }\r