Source: trackers/TrackerTask.js

(function() {
 /**
 * TrackerTask utility.
 * @constructor
 * @extends {tracking.EventEmitter}
 */
 tracking.TrackerTask = function(tracker) {
 tracking.TrackerTask.base(this, 'constructor');
 if (!tracker) {
 throw new Error('Tracker instance not specified.');
 }
 this.setTracker(tracker);
 };
 tracking.inherits(tracking.TrackerTask, tracking.EventEmitter);
 /**
 * Holds the tracker instance managed by this task.
 * @type {tracking.Tracker}
 * @private
 */
 tracking.TrackerTask.prototype.tracker_ = null;
 /**
 * Holds if the tracker task is in running.
 * @type {boolean}
 * @private
 */
 tracking.TrackerTask.prototype.running_ = false;
 /**
 * Gets the tracker instance managed by this task.
 * @return {tracking.Tracker}
 */
 tracking.TrackerTask.prototype.getTracker = function() {
 return this.tracker_;
 };
 /**
 * Returns true if the tracker task is in running, false otherwise.
 * @return {boolean}
 * @private
 */
 tracking.TrackerTask.prototype.inRunning = function() {
 return this.running_;
 };
 /**
 * Sets if the tracker task is in running.
 * @param {boolean} running
 * @private
 */
 tracking.TrackerTask.prototype.setRunning = function(running) {
 this.running_ = running;
 };
 /**
 * Sets the tracker instance managed by this task.
 * @return {tracking.Tracker}
 */
 tracking.TrackerTask.prototype.setTracker = function(tracker) {
 this.tracker_ = tracker;
 };
 /**
 * Emits a `run` event on the tracker task for the implementers to run any
 * child action, e.g. `requestAnimationFrame`.
 * @return {object} Returns itself, so calls can be chained.
 */
 tracking.TrackerTask.prototype.run = function() {
 var self = this;
 if (this.inRunning()) {
 return;
 }
 this.setRunning(true);
 this.reemitTrackEvent_ = function(event) {
 self.emit('track', event);
 };
 this.tracker_.on('track', this.reemitTrackEvent_);
 this.emit('run');
 return this;
 };
 /**
 * Emits a `stop` event on the tracker task for the implementers to stop any
 * child action being done, e.g. `requestAnimationFrame`.
 * @return {object} Returns itself, so calls can be chained.
 */
 tracking.TrackerTask.prototype.stop = function() {
 if (!this.inRunning()) {
 return;
 }
 this.setRunning(false);
 this.emit('stop');
 this.tracker_.removeListener('track', this.reemitTrackEvent_);
 return this;
 };
}());

AltStyle によって変換されたページ (->オリジナル) /