Cocos2d-x  v4
EventDispatcher Class Reference

This class manages event listener subscriptions and event dispatching. More...

Inherits Ref.

Public Member Functions

void addEventListenerWithSceneGraphPriority (EventListener *listener, Node *node)
 Adds a event listener for a specified event with the priority of scene graph. More...
 
void addEventListenerWithFixedPriority (EventListener *listener, int fixedPriority)
 Adds a event listener for a specified event with the fixed priority. More...
 
EventListenerCustomaddCustomEventListener (const std::string &eventName, const std::function< void(EventCustom *)> &callback)
 Adds a Custom event listener. More...
 
void removeEventListener (EventListener *listener)
 Remove a listener. More...
 
void removeEventListenersForType (EventListener::Type listenerType)
 Removes all listeners with the same event listener type. More...
 
void removeEventListenersForTarget (Node *target, bool recursive=false)
 Removes all listeners which are associated with the specified target. More...
 
void removeCustomEventListeners (const std::string &customEventName)
 Removes all custom listeners with the same event name. More...
 
void removeAllEventListeners ()
 Removes all listeners.
 
void pauseEventListenersForTarget (Node *target, bool recursive=false)
 Pauses all listeners which are associated the specified target. More...
 
void resumeEventListenersForTarget (Node *target, bool recursive=false)
 Resumes all listeners which are associated the specified target. More...
 
void setPriority (EventListener *listener, int fixedPriority)
 Sets listener's priority with fixed value. More...
 
void setEnabled (bool isEnabled)
 Whether to enable dispatching events. More...
 
bool isEnabled () const
 Checks whether dispatching events is enabled. More...
 
void dispatchEvent (Event *event)
 Dispatches the event. More...
 
void dispatchCustomEvent (const std::string &eventName, void *optionalUserData=nullptr)
 Dispatches a Custom Event with a event name an optional user data. More...
 
bool hasEventListener (const EventListener::ListenerID &listenerID) const
 Query whether the specified event listener id has been added. More...
 
 EventDispatcher ()
 Constructor of EventDispatcher.
 
 ~EventDispatcher ()
 Destructor of EventDispatcher.
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Releases the ownership immediately. More...
 
Refautorelease ()
 Releases the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()
 Destructor. More...
 

Additional Inherited Members

- Public Attributes inherited from Ref
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
void * _scriptObject
 scriptObject, support for swift
 
bool _rooted
 When true, it means that the object was already rooted.
 

Detailed Description

This class manages event listener subscriptions and event dispatching.

The EventListener list is managed in such a way that event listeners can be added and removed even from within an EventListener, while events are being dispatched. @js NA

Member Function Documentation

◆ addEventListenerWithSceneGraphPriority()

void addEventListenerWithSceneGraphPriority ( EventListener listener,
Node node 
)

Adds a event listener for a specified event with the priority of scene graph.

Parameters
listenerThe listener of a specified event.
nodeThe priority of the listener is based on the draw order of this node.
Note
The priority of scene graph will be fixed value 0. So the order of listener item in the vector will be ' <0, scene graph (0 priority), >0'.

◆ addEventListenerWithFixedPriority()

void addEventListenerWithFixedPriority ( EventListener listener,
int  fixedPriority 
)

Adds a event listener for a specified event with the fixed priority.

Parameters
listenerThe listener of a specified event.
fixedPriorityThe fixed priority of the listener.
Note
A lower priority will be called before the ones that have a higher value. 0 priority is forbidden for fixed priority since it's used for scene graph based priority.

◆ addCustomEventListener()

EventListenerCustom* addCustomEventListener ( const std::string &  eventName,
const std::function< void(EventCustom *)> &  callback 
)

Adds a Custom event listener.

It will use a fixed priority of 1.

Parameters
eventNameA given name of the event.
callbackA given callback method that associated the event name.
Returns
the generated event. Needed in order to remove the event from the dispatcher

◆ removeEventListener()

void removeEventListener ( EventListener listener)

Remove a listener.

Parameters
listenerThe specified event listener which needs to be removed.

◆ removeEventListenersForType()

void removeEventListenersForType ( EventListener::Type  listenerType)

Removes all listeners with the same event listener type.

Parameters
listenerTypeA given event listener type which needs to be removed.

◆ removeEventListenersForTarget()

void removeEventListenersForTarget ( Node target,
bool  recursive = false 
)

Removes all listeners which are associated with the specified target.

Parameters
targetA given target node.
recursiveTrue if remove recursively, the default value is false.

◆ removeCustomEventListeners()

void removeCustomEventListeners ( const std::string &  customEventName)

Removes all custom listeners with the same event name.

Parameters
customEventNameA given event listener name which needs to be removed.

◆ pauseEventListenersForTarget()

void pauseEventListenersForTarget ( Node target,
bool  recursive = false 
)

Pauses all listeners which are associated the specified target.

Parameters
targetA given target node.
recursiveTrue if pause recursively, the default value is false.

◆ resumeEventListenersForTarget()

void resumeEventListenersForTarget ( Node target,
bool  recursive = false 
)

Resumes all listeners which are associated the specified target.

Parameters
targetA given target node.
recursiveTrue if resume recursively, the default value is false.

◆ setPriority()

void setPriority ( EventListener listener,
int  fixedPriority 
)

Sets listener's priority with fixed value.

Parameters
listenerA given listener.
fixedPriorityThe fixed priority value.

◆ setEnabled()

void setEnabled ( bool  isEnabled)

Whether to enable dispatching events.

Parameters
isEnabledTrue if enable dispatching events.

◆ isEnabled()

bool isEnabled ( ) const

Checks whether dispatching events is enabled.

Returns
True if dispatching events is enabled.

◆ dispatchEvent()

void dispatchEvent ( Event event)

Dispatches the event.

Also removes all EventListeners marked for deletion from the event dispatcher list.

Parameters
eventThe event needs to be dispatched.

◆ dispatchCustomEvent()

void dispatchCustomEvent ( const std::string &  eventName,
void *  optionalUserData = nullptr 
)

Dispatches a Custom Event with a event name an optional user data.

Parameters
eventNameThe name of the event which needs to be dispatched.
optionalUserDataThe optional user data, it's a void*, the default value is nullptr.

◆ hasEventListener()

bool hasEventListener ( const EventListener::ListenerID &  listenerID) const

Query whether the specified event listener id has been added.

Parameters
listenerIDThe listenerID of the event listener id.
Returns
True if dispatching events is exist

The documentation for this class was generated from the following file: