code: function(parent, filter, onAddTransition, onRemoveTransition) {
  	this._listeners = []; // parent events that want to know when I fire
  	this._transitions = []; // a list of transitions that I'm attached to
  	this._on_add_transition = onAddTransition; // optional listener for when a transition is added
  	this._on_remove_transition = onRemoveTransition; // optional listener for when a transition is removed
  	this._live_fns = {}; // one per transitions
  	this._parent = parent;
  	if(this._parent) {
  		this._parent._listeners.push({event:this, filter: filter}); // add an item to my parent's listener if i have a parent
  	}
  }
docs: **Note:** the preferred way to create this object is with the `cjs.on` function
  Creates an event that can be used in a finite-state machine transition
  @class cjs.CJSEvent
  @classdesc A constraint object communicates with the constraint solver to store and maintain constraint values
  @see cjs.on