var Class = require('../../utils/Class'); var TouchManager = new Class({ initialize: function TouchManager(inputManager){ this.manager = inputManager; this.capture = true ; this.enabled = false ; this.target; this.handler; } , boot: function (){ var config = this.manager.config; this.enabled = config.inputTouch; _AN_Write_target('target', this, false , config.inputTouchEventTarget); this.capture = config.inputTouchCapture; if (!(_AN_Read_target('target', this))) { _AN_Write_target('target', this, false , this.manager.game.canvas); } if (this.enabled) { this.startListeners(); } } , startListeners: function (){ var queue = this.manager.queue; var target = _AN_Read_target('target', this); var passive = { passive: true } ; var nonPassive = { passive: false } ; var handler; if (this.capture) { handler = function (event){ if (event.defaultPrevented) { return ; } queue.push(event); event.preventDefault(); } ; target.addEventListener('touchstart', handler, nonPassive); target.addEventListener('touchmove', handler, nonPassive); target.addEventListener('touchend', handler, nonPassive); } else { handler = function (event){ if (event.defaultPrevented) { return ; } queue.push(event); } ; target.addEventListener('touchstart', handler, passive); target.addEventListener('touchmove', handler, passive); target.addEventListener('touchend', handler, passive); } this.handler = handler; } , stopListeners: function (){ var target = _AN_Read_target('target', this); target.removeEventListener('touchstart', this.handler); target.removeEventListener('touchmove', this.handler); target.removeEventListener('touchend', this.handler); } } ); module.exports = TouchManager;