@@ -47,10 +47,10 @@ cc.Acceleration = function (x, y, z, timestamp) {
4747 * @extends cc.Class
4848 */
4949cc . Accelerometer = cc . Class . extend ( /** @lends cc.Accelerometer# */ {
50- setDelegate :function ( delegate ) {
50+ setDelegate : function ( delegate ) {
5151 cc . AccelerometerDispatcher . getInstance ( ) . addDelegate ( delegate ) ;
5252 } ,
53- setAccelerometerInterval :function ( interval ) {
53+ setAccelerometerInterval : function ( interval ) {
5454 cc . AccelerometerDispatcher . getInstance ( ) . setAccelerometerInterval ( interval ) ;
5555 }
5656} ) ;
@@ -63,31 +63,31 @@ cc.Accelerometer = cc.Class.extend(/** @lends cc.Accelerometer# */{
6363 * @extends cc.Class
6464 */
6565cc . AccelerometerDispatcher = cc . Class . extend ( /** @lends cc.AccelerometerDispatcher# */ {
66- _delegate :null ,
67- _acceleration :null ,
68- _deviceEvent :null ,
69- //_orientation:0,
70- _interval :0.1 ,
71- _minus :1 ,
72- init :function ( ) {
66+ _delegate : null ,
67+ _acceleration : null ,
68+ _deviceEvent : null ,
69+ _interval : 0 ,
70+ _minus : 1 ,
71+ init : function ( ) {
7372 this . _acceleration = new cc . Acceleration ( ) ;
7473 this . _deviceEvent = window . DeviceMotionEvent || window . DeviceOrientationEvent ;
7574 var ua = navigator . userAgent ;
76- if ( / A n d r o i d / . test ( ua ) ) {
75+ if ( / A n d r o i d / . test ( ua ) || ( / A d r / . test ( ua ) && cc . Browser . type == "ucbrowser" ) ) {
7776 this . _minus = - 1 ;
7877 }
78+
7979 //TODO fix DeviceMotionEvent bug on QQ Browser version 4.1 and below.
80- /*if(ua.indexOf("qqbrowser")) {
80+ if ( cc . Browser . type == "mqqbrowser" ) {
8181 this . _deviceEvent = window . DeviceOrientationEvent ;
82- }*/
82+ }
8383 return true ;
8484 } ,
8585
86- getDelegate :function ( ) {
86+ getDelegate : function ( ) {
8787 return this . _delegate ;
8888 } ,
8989
90- addDelegate :function ( delegate ) {
90+ addDelegate : function ( delegate ) {
9191 this . _delegate = delegate ;
9292 var acc = this . didAccelerate . bind ( this ) ;
9393
@@ -109,18 +109,20 @@ cc.AccelerometerDispatcher = cc.Class.extend(/** @lends cc.AccelerometerDispatch
109109 }
110110 } ,
111111
112- setAccelerometerInterval :function ( interval ) {
113- //not available on browser
112+ setAccelerometerInterval : function ( interval ) {
114113 if ( this . _interval !== interval ) {
115114 this . _interval = interval ;
116115 }
117116 } ,
118117
119- didAccelerate :function ( eventData ) {
118+ didAccelerate : function ( eventData ) {
120119 if ( ! this . _delegate ) {
121120 return ;
122121 }
123122
123+ var now = Date . now ( ) ;
124+ if ( ( now - this . _acceleration . timestamp ) / 1000 < this . _interval ) return ;
125+
124126 if ( this . _deviceEvent == window . DeviceMotionEvent ) {
125127 var acceleration = eventData . accelerationIncludingGravity ;
126128 this . _acceleration . x = this . _minus * acceleration . x * 0.1 ;
@@ -132,7 +134,6 @@ cc.AccelerometerDispatcher = cc.Class.extend(/** @lends cc.AccelerometerDispatch
132134 this . _acceleration . y = - ( eventData . beta / 90 ) * 0.981 ;
133135 this . _acceleration . z = ( eventData . alpha / 90 ) * 0.981 ;
134136 }
135-
136137 this . _acceleration . timestamp = Date . now ( ) ;
137138
138139 var tmp = this . _acceleration . x ;
0 commit comments