API Reference

Class List

pc.Tags

Extends: pc.EventHandler

Set of tag names

Summary

Properties

sizeNumber of tags in set[read only]

Methods

addAdd a tag, duplicates are ignored.
clearRemove all tags.
hasCheck if tags satisfy filters.
listReturns immutable array of tags
removeRemove tag.

Events

add
changeFires when tags been added / removed.
remove

Inherited

Methods

fireFire an event, all additional arguments are passed on to the event listener
hasEventTest if there are any handlers bound to an event name
offDetach an event handler from an event.
onAttach an event handler to an event
onceAttach an event handler to an event.

Details

Constructor

Tags([parent])

Create an instance of a Tags.

Parameters

parentObjectParent object who tags belong to. Note: Tags are used as addition of `pc.Entity` and `pc.Asset` as `tags` field.

Properties

Numbersize

Number of tags in set[read only]

Methods

add(name)

Add a tag, duplicates are ignored. Can be array or comma separated arguments for multiple tags.

tags.add('level-1');
tags.add('ui', 'settings');
tags.add([ 'level-2', 'mob' ]);

Parameters

nameStringName of a tag, or array of tags

Returns

Boolean true if any tag were added

clear()

Remove all tags.

tags.clear();

has(name)

Check if tags satisfy filters. Filters can be provided by simple name of tag, as well as by array of tags. When an array is provided it will check if tags contain each tag within the array. If any of comma separated argument is satisfied, then it will return true. Any number of combinations are valid, and order is irrelevant.

tags.has('player'); // player
tags.has('mob', 'player'); // player OR mob
tags.has([ 'level-1', 'mob' ]); // monster AND level-1
tags.has([ 'ui', 'settings' ], [ 'ui', 'levels' ]); // (ui AND settings) OR (ui AND levels)

Parameters

nameStringof tag, or array of names

Returns

Boolean true if filters are satisfied

list()

Returns immutable array of tags

Returns

String[] copy of tags array

remove(name)

Remove tag.

tags.remove('level-1');
tags.remove('ui', 'settings');
tags.remove([ 'level-2', 'mob' ]);

Parameters

nameStringName of a tag or array of tags

Returns

Boolean true if any tag were removed

Events

add

Parameters

tagStringName of a tag added to a set.
parentObjectParent object who tags belong to.

change

Fires when tags been added / removed. It will fire once on bulk changes, while `add`/`remove` will fire on each tag operation

Parameters

parentObjectParent object who tags belong to.

remove

Parameters

tagStringName of a tag removed from a set.
parentObjectParent object who tags belong to.

Inherited

Methods

fire(name, [arg1], [arg2], [arg3], [arg4], [arg5], [arg6], [arg7], [arg8])

Fire an event, all additional arguments are passed on to the event listener

obj.fire('test', 'This is the message');

Parameters

nameObjectName of event to fire
arg1*First argument that is passed to the event handler
arg2*Second argument that is passed to the event handler
arg3*Third argument that is passed to the event handler
arg4*Fourth argument that is passed to the event handler
arg5*Fifth argument that is passed to the event handler
arg6*Sixth argument that is passed to the event handler
arg7*Seventh argument that is passed to the event handler
arg8*Eighth argument that is passed to the event handler

Returns

pc.EventHandler Self for chaining.

hasEvent(name)

Test if there are any handlers bound to an event name

obj.on('test', function () { }); // bind an event to 'test'
obj.hasEvent('test'); // returns true
obj.hasEvent('hello'); // returns false

Parameters

nameStringThe name of the event to test

Returns

Boolean true if the object has handlers bound to the specified event name.

off([name], [callback], [scope])

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.

var handler = function () {
};
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 hander functions, called 'test' with scope this

Parameters

nameStringName of the event to unbind
callbackpc.callbacks.HandleEventFunction to be unbound.
scopeObjectScope that was used as the this when the event is fired

Returns

pc.EventHandler Self for chaining.

on(name, callback, [scope])

Attach an event handler to an event

obj.on('test', function (a, b) {
    console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console

Parameters

nameStringName of the event to bind the callback to
callbackpc.callbacks.HandleEventFunction that is called when event is fired. Note the callback is limited to 8 arguments.
scopeObjectObject to use as 'this' when the event is fired, defaults to current this

Returns

pc.EventHandler Self for chaining.

once(name, callback, [scope])

Attach an event handler to an event. This handler will be removed after being fired once.

obj.once('test', function (a, b) {
    console.log(a + b);
});
obj.fire('test', 1, 2); // prints 3 to the console
obj.fire('test', 1, 2); // not going to get handled

Parameters

nameStringName of the event to bind the callback to
callbackpc.callbacks.HandleEventFunction that is called when event is fired. Note the callback is limited to 8 arguments.
scopeObjectObject to use as 'this' when the event is fired, defaults to current this

Returns

pc.EventHandler Self for chaining.