game.js
function(namespacedEvent, callback) {
      var callbacks, event, key, namespace, _ref;
      _ref = namespacedEvent.split("."), event = _ref[0], namespace = _ref[1];
      if (event) {
        eventCallbacks[event] || (eventCallbacks[event] = []);
        if (namespace) {
          eventCallbacks[event] = eventCallbacks.select(function(callback) {
            var _ref2;
            return !(((_ref2 = callback.__PIXIE) != null ? _ref2[namespace] : void 0) != null);
          });
        } else {
          if (callback) {
            eventCallbacks[event].remove(callback);
          } else {
            eventCallbacks[event] = [];
          }
        }
      } else if (namespace) {
        for (key in eventCallbacks) {
          callbacks = eventCallbacks[key];
          eventCallbacks[key] = callbacks.select(function(callback) {
            var _ref2;
            return !(((_ref2 = callback.__PIXIE) != null ? _ref2[namespace] : void 0) != null);
          });
        }
      }
      return this;
    }
function(namespacedEvent, callback) {
      var callbacks, event, key, namespace, _ref;
      _ref = namespacedEvent.split("."), event = _ref[0], namespace = _ref[1];
      if (event) {
        eventCallbacks[event] || (eventCallbacks[event] = []);
        if (namespace) {
          eventCallbacks[event] = eventCallbacks.select(function(callback) {
            var _ref2;
            return !(((_ref2 = callback.__PIXIE) != null ? _ref2[namespace] : void 0) != null);
          });
        } else {
          if (callback) {
            eventCallbacks[event].remove(callback);
          } else {
            eventCallbacks[event] = [];
          }
        }
      } else if (namespace) {
        for (key in eventCallbacks) {
          callbacks = eventCallbacks[key];
          eventCallbacks[key] = callbacks.select(function(callback) {
            var _ref2;
            return !(((_ref2 = callback.__PIXIE) != null ? _ref2[namespace] : void 0) != null);
          });
        }
      }
      return this;
    }
function ( namespacedEvent , callback ) { var callbacks , event , key , namespace , _ref ; _ref = namespacedEvent . split ( "." ) , event = _ref [ 0 ] , namespace = _ref [ 1 ] ; if ( event ) { eventCallbacks [ event ] || ( eventCallbacks [ event ] = [ ] ) ; if ( namespace ) { eventCallbacks [ event ] = eventCallbacks . select ( function ( callback ) { var _ref2 ; return ! ( ( ( _ref2 = callback . __PIXIE ) != null ? _ref2 [ namespace ] : void 0 ) != null ) ; } ) ; } else { if ( callback ) { eventCallbacks [ event ] . remove ( callback ) ; } else { eventCallbacks [ event ] = [ ] ; } } } else if ( namespace ) { for ( key in eventCallbacks ) { callbacks = eventCallbacks [ key ] ; eventCallbacks [ key ] = callbacks . select ( function ( callback ) { var _ref2 ; return ! ( ( ( _ref2 = callback . __PIXIE ) != null ? _ref2 [ namespace ] : void 0 ) != null ) ; } ) ; } } return this ; }
Removes a specific event listener, or all event listeners if
no specific listener is given.

#  removes the handler coolEventHandler from the event
# "someCustomEvent" while leaving the other events intact.
yourObject.off "someCustomEvent", coolEventHandler

# removes all handlers attached to "anotherCustomEvent"
yourObject.off "anotherCustomEvent"

@name off
@methodOf Bindable#
@param {String} event The event to remove the listener from.
@param {Function} [callback] The listener to remove.
Removes a specific event listener or all event listeners if no specific listener is given .