Skip to content

Commit 6390735

Browse files
committed
Fix acceleration event crash
1 parent 013e094 commit 6390735

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

Diff for: cocos2d/core/platform/CCInputExtension.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ _p.setAccelerometerEnabled = function(isEnable){
3939
var scheduler = cc.director.getScheduler();
4040
if(_t._accelEnabled){
4141
_t._accelCurTime = 0;
42+
_t._registerAccelerometerEvent();
4243
scheduler.scheduleUpdate(_t);
4344
} else {
4445
_t._accelCurTime = 0;
45-
scheduler.scheduleUpdate(_t);
46+
_t._unregisterAccelerometerEvent();
47+
scheduler.unscheduleUpdate(_t);
4648
}
4749
};
4850

@@ -85,7 +87,14 @@ _p._registerAccelerometerEvent = function(){
8587
_t._minus = -1;
8688
}
8789

88-
w.addEventListener(_deviceEventType, _t.didAccelerate.bind(_t), false);
90+
_t.didAccelerateCallback = _t.didAccelerate.bind(_t);
91+
w.addEventListener(_deviceEventType, _t.didAccelerateCallback, false);
92+
};
93+
94+
_p._unregisterAccelerometerEvent = function () {
95+
this._acceleration = null;
96+
var _deviceEventType = (this._accelDeviceEvent === window.DeviceMotionEvent) ? "devicemotion" : "deviceorientation";
97+
window.removeEventListener(_deviceEventType, this.didAccelerateCallback, false);
8998
};
9099

91100
_p.didAccelerate = function (eventData) {

0 commit comments

Comments
 (0)