Create a new ScriptRegistry instance.
Application to attach registry to.
Add a script to the registry, keyed by its name. The name is taken from the script's static
scriptName property (for Script classes), or assigned by createScript /
registerScript. Note: when createScript or registerScript is called,
the script is added to the registry automatically, so calling this method directly is only
required when registering a Script class manually (e.g. in an engine-only project).
If a script with the same name already exists in the registry, and the new script has a
swap method defined, it will perform code hot swapping automatically in an async manner.
The script class to add. Must have a
resolvable name (a static scriptName, an assigned __name, or an inferable class name).
True if the script was added for the first time. False if a script with the same name already exists, or if the script has no resolvable name.
Registers a schema against a script instance.
The key to use to store the schema
An schema definition for the script
Fire an event, all additional arguments are passed on to the event listener.
Name of event to fire.
Optionalarg1: anyFirst argument that is passed to the event handler.
Optionalarg2: anySecond argument that is passed to the event handler.
Optionalarg3: anyThird argument that is passed to the event handler.
Optionalarg4: anyFourth argument that is passed to the event handler.
Optionalarg5: anyFifth argument that is passed to the event handler.
Optionalarg6: anySixth argument that is passed to the event handler.
Optionalarg7: anySeventh argument that is passed to the event handler.
Optionalarg8: anyEighth argument that is passed to the event handler.
Self for chaining.
Get ScriptType by name.
Name of a ScriptType.
The Script Type if it exists in the registry or null otherwise.
Returns a schema for a given script name.
The key to store the schema under
Check if a ScriptType with the specified name is in the registry.
The name or type of ScriptType.
True if ScriptType is in registry.
Test if there are any handlers bound to an event name.
The name of the event to test.
True if the object has handlers bound to the specified event name.
Get list of all ScriptTypes from registry.
list of all ScriptTypes in registry.
Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.
Optionalname: stringName of the event to unbind.
Optionalcallback: HandleEventCallbackFunction to be unbound.
Optionalscope: anyScope that was used as the this when the event is fired.
Self for chaining.
const handler = () => {};
obj.on('test', handler);
obj.off(); // Removes all events
obj.off('test'); // Removes all events called 'test'
obj.off('test', handler); // Removes all handler functions, called 'test'
obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
Attach an event handler to an event.
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optionalscope: any = ...Object to use as 'this' when the event is fired, defaults to current this.
Can be used for removing event in the future.
Attach an event handler to an event. This handler will be removed after being fired once.
Name of the event to bind the callback to.
Function that is called when event is fired. Note the callback is limited to 8 arguments.
Optionalscope: any = ...Object to use as 'this' when the event is fired, defaults to current this.
Can be used for removing event in the future.
Remove ScriptType.
The name or type of ScriptType.
True if removed or False if already not in registry.
Container for all ScriptTypes that are available to this application. Note that PlayCanvas scripts can access the Script Registry from inside the application with AppBase#scripts.