Soul Machines Event Class

An instance of SmEvent or an instance of a Subclass of SmEvent can have a set of 0 to n event listeners registered to itself. These event listeners are invoked with relevant arguments when an event of interest occurs.

Example Usage of Constructor:

var event = new SmEvent();

Instance Methods

addListener(callback: Function): void

This method allows the addition of a new event listener to an instance of an SmEvent, or an instance of a Subclass of SmEvent. The only argument is a ​function​, which is the event listener. This function is invoked when the event occurs, along with any relevant information within the argument of the function.​ ​addListener()returns ​void​.

 

call(...args: any[]): void

If there is a need to trigger the SmEvent manually, this can be done by invoking the ​call()​ instance method. This calls every event listener registered to the SmEvent, and passes in any arguments to each event listener.  

Example:

var​ event = ​new​ SmEvent(); var​ listener1 = ​function​(args) { console​.log(​"Listener 1 was invoked with "​ + args); return​ ​void​; };   var​ listener2 = ​function​(args) { console​.log(​"Listener 2 was invoked with "​ + args); return​ ​void​; }; // register both event listeners event.addListener(listener1); event.addListener(listener2); // Call the event only once event.call("some information"​    )​; /* This will produce the following console log output: ============================ Listener 1 was invoked with some information Listener 2 was invoked with some information ============================ *Note the order of the console log output may not be consistent. */

  

removeListener(callback: Function): void

This function enables you to remove a previously registered event listener. Note that it is a safe no-op to pass an event listener that was never previously registered. The only parameter is the pointer to the instance of the event listener that was previously registered.

This example is a continuation of the Example of ​addListener​, this removes ​listener2​:

// Continuation of Example from addListener(). All vars defined in that example. event.removeListener(listener2); event.call("some more information"​  )​ ; /* This will produce the following console log output: ============================ Listener 1 was invoked with some more information ============================ */