Director Class
Extends EventTarget
Module: cc
ATTENTION: USE cc.director INSTEAD OF cc.Director.
cc.director is a singleton object which manage your game's logic flow.
Since the cc.director is a singleton, you don't need to call any constructor or create functions,
the standard way to use it is by calling:
- cc.director.methodName();
It creates and handle the main Window and manages how and when to execute the Scenes.
The cc.director is also responsible for:
- initializing the OpenGL context
- setting the OpenGL pixel format (default on is RGB565)
- setting the OpenGL buffer depth (default on is 0-bit)
- setting the color for clear screen (default one is BLACK)
- setting the projection (default one is 3D)
- setting the orientation (default one is Portrait)
The cc.director also sets the default OpenGL context:
- GL_TEXTURE_2D is enabled
- GL_VERTEX_ARRAY is enabled
- GL_COLOR_ARRAY is enabled
- GL_TEXTURE_COORD_ARRAY is enabled
cc.director also synchronizes timers with the refresh rate of the display.
Features and Limitations:
- Scheduled timers & drawing are synchronizes with the refresh rate of the display
- Only supports animation intervals of 1/60 1/30 & 1/15
Index
Properties
EVENT_PROJECTION_CHANGEDStringThe event projection changed of cc.Director.EVENT_BEFORE_SCENE_LOADINGStringThe event which will be triggered before loading a new scene.EVENT_BEFORE_SCENE_LAUNCHStringThe event which will be triggered before launching a new scene.EVENT_AFTER_SCENE_LAUNCHStringThe event which will be triggered after launching a new scene.EVENT_BEFORE_UPDATEStringThe event which will be triggered at the beginning of every frame.EVENT_AFTER_UPDATEStringThe event which will be triggered after engine and components update logic.EVENT_BEFORE_VISITStringThe event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW insteadEVENT_AFTER_VISITStringThe event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW insteadEVENT_BEFORE_DRAWStringThe event which will be triggered before the rendering process.EVENT_AFTER_DRAWStringThe event which will be triggered after the rendering process.PROJECTION_2DNumberConstant for 2D projection (orthogonal projection)PROJECTION_3DNumberConstant for 3D projection with a fovy=60, znear=0.5f and zfar=1500.PROJECTION_CUSTOMNumberConstant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate.PROJECTION_DEFAULTNumberConstant for default projection of cc.Director, default projection is 2D projection
Methods
convertToGLConverts a view coordinate to an WebGL coordinate...convertToUIConverts an OpenGL coordinate to a view coordinate...endEnd the life of director in the next framegetWinSizeReturns the size of the WebGL view in points....getWinSizeInPixelsOn Mac winSize and winSizeInPixels return the same value.pausePause the director's ticker, only involve the game logic execution.runSceneImmediateRun a scene.runSceneRun a scene.loadSceneLoads the scene by its name.preloadScenePreloads the scene to reduces loading time._loadSceneByUuidLoads the scene by its uuid.resumeResume game logic execution after pause, if the current scene is not paused, nothing will happen.setDepthTestEnables or disables WebGL depth test....setClearColorSet color for clear screen....getRunningSceneReturns current logic Scene.getSceneReturns current logic Scene.getAnimationIntervalReturns the FPS value.setAnimationIntervalSets animation interval, this doesn't control the main loop.getDeltaTimeReturns the delta time since last frame.getTotalFramesReturns how many frames were called since the director started.isPausedReturns whether or not the Director is paused.getSchedulerReturns the cc.Scheduler associated with this director.setSchedulerSets the cc.Scheduler associated with this director.getActionManagerReturns the cc.ActionManager associated with this director.setActionManagerSets the cc.ActionManager associated with this director.getCollisionManagerReturns the cc.CollisionManager associated with this director.getPhysicsManagerReturns the cc.PhysicsManager associated with this director.hasEventListenerChecks whether the EventTarget object has any callback registered for a specific type of event.onRegister an callback of a specific event type on the EventTarget.offRemoves the listeners previously registered with the same type, callback, target and or useCapture,...targetOffRemoves all callbacks previously registered with the same target (passed as parameter).onceRegister an callback of a specific event type on the EventTarget,...emitTrigger an event directly with the event name and necessary arguments.dispatchEventSend an event with the event object.
Events
cc.Director.EVENT_BEFORE_SCENE_LOADINGThe event which will be triggered before loading a new scene.cc.Director.EVENT_AFTER_SCENE_LAUNCHThe event which will be triggered after launching a new scene.cc.Director.EVENT_BEFORE_UPDATEThe event which will be triggered at the beginning of every frame.cc.Director.EVENT_AFTER_UPDATEThe event which will be triggered after engine and components update logic.cc.Director.EVENT_BEFORE_DRAWThe event which will be triggered before the rendering process.cc.Director.EVENT_AFTER_DRAWThe event which will be triggered after the rendering process.
Details
Properties
EVENT_PROJECTION_CHANGED
The event projection changed of cc.Director. This event will not get triggered since v2.0
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:981 |
| Deprecated | since v2.0 |
EVENT_BEFORE_SCENE_LOADING
The event which will be triggered before loading a new scene.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:997 |
EVENT_BEFORE_SCENE_LAUNCH
The event which will be triggered before launching a new scene.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1012 |
EVENT_AFTER_SCENE_LAUNCH
The event which will be triggered after launching a new scene.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1027 |
EVENT_BEFORE_UPDATE
The event which will be triggered at the beginning of every frame.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1041 |
EVENT_AFTER_UPDATE
The event which will be triggered after engine and components update logic.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1055 |
EVENT_BEFORE_VISIT
The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1064 |
| Deprecated | since v2.0 |
EVENT_AFTER_VISIT
The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1074 |
| Deprecated | since v2.0 |
EVENT_BEFORE_DRAW
The event which will be triggered before the rendering process.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1089 |
EVENT_AFTER_DRAW
The event which will be triggered after the rendering process.
| meta | description |
|---|---|
| Type | String |
| Defined in | cocos2d/core/CCDirector.js:1103 |
PROJECTION_2D
Constant for 2D projection (orthogonal projection)
| meta | description |
|---|---|
| Type | Number |
| Defined in | cocos2d/core/CCDirector.js:1114 |
| Deprecated | since v2.0 |
PROJECTION_3D
Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500.
| meta | description |
|---|---|
| Type | Number |
| Defined in | cocos2d/core/CCDirector.js:1124 |
| Deprecated | since v2.0 |
PROJECTION_CUSTOM
Constant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate.
| meta | description |
|---|---|
| Type | Number |
| Defined in | cocos2d/core/CCDirector.js:1134 |
| Deprecated | since v2.0 |
PROJECTION_DEFAULT
Constant for default projection of cc.Director, default projection is 2D projection
| meta | description |
|---|---|
| Type | Number |
| Defined in | cocos2d/core/CCDirector.js:1144 |
| Deprecated | since v2.0 |
Methods
convertToGL
Converts a view coordinate to an WebGL coordinate
Useful to convert (multi) touches coordinates to the current layout (portrait or landscape)
Implementation can be found in CCDirectorWebGL.
| meta | description |
|---|---|
| Returns | Vec2 |
| Defined in | cocos2d/core/CCDirector.js:230 |
| Deprecated | since v2.0 |
Parameters
uiPointVec2
convertToUI
Converts an OpenGL coordinate to a view coordinate
Useful to convert node points to window points for calls such as glScissor
Implementation can be found in CCDirectorWebGL.
| meta | description |
|---|---|
| Returns | Vec2 |
| Defined in | cocos2d/core/CCDirector.js:252 |
| Deprecated | since v2.0 |
Parameters
glPointVec2
end
End the life of director in the next frame
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:281 |
getWinSize
Returns the size of the WebGL view in points.
It takes into account any possible rotation (device orientation) of the window.
| meta | description |
|---|---|
| Returns | Size |
| Defined in | cocos2d/core/CCDirector.js:289 |
| Deprecated | since v2.0 |
getWinSizeInPixels
Returns the size of the OpenGL view in pixels.
It takes into account any possible rotation (device orientation) of the window.
On Mac winSize and winSizeInPixels return the same value.
(The pixel here refers to the resource resolution. If you want to get the physics resolution of device, you need to use cc.view.getFrameSize())
| meta | description |
|---|---|
| Returns | Size |
| Defined in | cocos2d/core/CCDirector.js:302 |
| Deprecated | since v2.0 |
pause
Pause the director's ticker, only involve the game logic execution. It won't pause the rendering process nor the event manager. If you want to pause the entier game including rendering, audio and event, please use Game.pause
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:319 |
runSceneImmediate
Run a scene. Replaces the running scene with a new one or enter the first scene.
The new scene will be launched immediately.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:403 |
Parameters
sceneScene The need run scene.onBeforeLoadSceneFunction The function invoked at the scene before loading.onLaunchedFunction The function invoked at the scene after launch.
runScene
Run a scene. Replaces the running scene with a new one or enter the first scene. The new scene will be launched at the end of the current frame.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:482 |
Parameters
sceneScene The need run scene.onBeforeLoadSceneFunction The function invoked at the scene before loading.onLaunchedFunction The function invoked at the scene after launch.
loadScene
Loads the scene by its name.
| meta | description |
|---|---|
| Returns | Boolean |
| Defined in | cocos2d/core/CCDirector.js:539 |
Parameters
sceneNameString The name of the scene to load.onLaunchedFunction callback, will be called after scene launched.
preloadScene
Preloads the scene to reduces loading time. You can call this method at any time you want.
After calling this method, you still need to launch the scene by cc.director.loadScene.
It will be totally fine to call cc.director.loadScene at any time even if the preloading is not
yet finished, the scene will be launched after loaded automatically.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:567 |
Parameters
sceneNameString The name of the scene to preload.onProgressFunction callback, will be called when the load progression change.onLoadedFunction callback, will be called after scene loaded.errorError null or the error object.assetcc.SceneAsset The scene asset itself.
_loadSceneByUuid
Loads the scene by its uuid.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:614 |
Parameters
uuidString the uuid of the scene asset to loadonLaunchedFunctiononUnloadedFunctiondontRunSceneBoolean Just download and initialize the scene but will not launch it,only take effect in the Editor.
resume
Resume game logic execution after pause, if the current scene is not paused, nothing will happen.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:677 |
setDepthTest
Enables or disables WebGL depth test.
Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:696 |
| Deprecated | since v2.0 |
Parameters
onBoolean
setClearColor
Set color for clear screen.
(Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js)
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:712 |
| Deprecated | since v2.0 |
Parameters
clearColorColor
getRunningScene
Returns current logic Scene.
| meta | description |
|---|---|
| Returns | Scene |
| Defined in | cocos2d/core/CCDirector.js:730 |
| Deprecated | since v2.0 |
getScene
Returns current logic Scene.
| meta | description |
|---|---|
| Returns | Scene |
| Defined in | cocos2d/core/CCDirector.js:742 |
Examples
// This will help you to get the Canvas node in scene
cc.director.getScene().getChildByName('Canvas');
getAnimationInterval
Returns the FPS value. Please use Game.setFrameRate to control animation interval.
| meta | description |
|---|---|
| Returns | Number |
| Defined in | cocos2d/core/CCDirector.js:755 |
| Deprecated | since v2.0 |
setAnimationInterval
Sets animation interval, this doesn't control the main loop. To control the game's frame rate overall, please use Game.setFrameRate
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:766 |
| Deprecated | since v2.0 |
Parameters
valueNumber The animation interval desired.
getDeltaTime
Returns the delta time since last frame.
| meta | description |
|---|---|
| Returns | Number |
| Defined in | cocos2d/core/CCDirector.js:777 |
getTotalFrames
Returns how many frames were called since the director started.
| meta | description |
|---|---|
| Returns | Number |
| Defined in | cocos2d/core/CCDirector.js:787 |
isPaused
Returns whether or not the Director is paused.
| meta | description |
|---|---|
| Returns | Boolean |
| Defined in | cocos2d/core/CCDirector.js:797 |
getScheduler
Returns the cc.Scheduler associated with this director.
| meta | description |
|---|---|
| Returns | Scheduler |
| Defined in | cocos2d/core/CCDirector.js:807 |
setScheduler
Sets the cc.Scheduler associated with this director.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:817 |
Parameters
schedulerScheduler
getActionManager
Returns the cc.ActionManager associated with this director.
| meta | description |
|---|---|
| Returns | ActionManager |
| Defined in | cocos2d/core/CCDirector.js:829 |
setActionManager
Sets the cc.ActionManager associated with this director.
| meta | description |
|---|---|
| Defined in | cocos2d/core/CCDirector.js:838 |
Parameters
actionManagerActionManager
getCollisionManager
Returns the cc.CollisionManager associated with this director.
| meta | description |
|---|---|
| Returns | CollisionManager |
| Defined in | cocos2d/core/CCDirector.js:864 |
getPhysicsManager
Returns the cc.PhysicsManager associated with this director.
| meta | description |
|---|---|
| Returns | PhysicsManager |
| Defined in | cocos2d/core/CCDirector.js:874 |
hasEventListener
Checks whether the EventTarget object has any callback registered for a specific type of event.
| meta | description |
|---|---|
| Returns | Boolean |
| Defined in | cocos2d/core/event/event-target.js:68 |
Parameters
typeString The type of event.
on
Register an callback of a specific event type on the EventTarget.
This type of event should be triggered via emit.
| meta | description |
|---|---|
| Returns | Function |
| Defined in | cocos2d/core/event/event-target.js:76 |
Parameters
typeString A string representing the event type to listen for.callbackFunction The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).arg1Any arg1arg2Any arg2arg3Any arg3arg4Any arg4arg5Any arg5
targetObject The target (this object) to invoke the callback, can be null
Examples
eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, node);
off
Removes the listeners previously registered with the same type, callback, target and or useCapture, if only type is passed as parameter, all listeners registered with that type will be removed.
| meta | description |
|---|---|
| Defined in | cocos2d/core/event/event-target.js:116 |
Parameters
typeString A string representing the event type being removed.callbackFunction The callback to remove.targetObject The target (this object) to invoke the callback, if it's not given, only callback without target will be removed
Examples
// register fire eventListener
var callback = eventTarget.on('fire', function () {
cc.log("fire in the hole");
}, target);
// remove fire event listener
eventTarget.off('fire', callback, target);
// remove all fire event listeners
eventTarget.off('fire');
targetOff
Removes all callbacks previously registered with the same target (passed as parameter). This is not for removing all listeners in the current event target, and this is not for removing all listeners the target parameter have registered. It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter.
| meta | description |
|---|---|
| Defined in | cocos2d/core/event/event-target.js:150 |
Parameters
targetObject The target to be searched for all related listeners
once
Register an callback of a specific event type on the EventTarget, the callback will remove itself after the first time it is triggered.
| meta | description |
|---|---|
| Defined in | cocos2d/core/event/event-target.js:163 |
Parameters
typeString A string representing the event type to listen for.callbackFunction The callback that will be invoked when the event is dispatched.The callback is ignored if it is a duplicate (the callbacks are unique).arg1Any arg1arg2Any arg2arg3Any arg3arg4Any arg4arg5Any arg5
targetObject The target (this object) to invoke the callback, can be null
Examples
eventTarget.once('fire', function () {
cc.log("this is the callback and will be invoked only once");
}, node);
emit
Trigger an event directly with the event name and necessary arguments.
| meta | description |
|---|---|
| Defined in | cocos2d/core/event/event-target.js:200 |
Parameters
typeString event typearg1Any First argumentarg2Any Second argumentarg3Any Third argumentarg4Any Fourth argumentarg5Any Fifth argument
Examples
eventTarget.emit('fire', event);
eventTarget.emit('fire', message, emitter);
dispatchEvent
Send an event with the event object.
| meta | description |
|---|---|
| Defined in | cocos2d/core/event/event-target.js:220 |
Parameters
eventEvent
Events
cc.Director.EVENT_BEFORE_SCENE_LOADING Event
Module: cc
The event which will be triggered before loading a new scene.
Index
Details
cc.Director.EVENT_AFTER_SCENE_LAUNCH Event
Module: cc
The event which will be triggered after launching a new scene.
Index
Details
cc.Director.EVENT_BEFORE_UPDATE Event
Module: cc
The event which will be triggered at the beginning of every frame.
Index
Details
cc.Director.EVENT_AFTER_UPDATE Event
Module: cc
The event which will be triggered after engine and components update logic.
Index
Details
cc.Director.EVENT_BEFORE_DRAW Event
Module: cc
The event which will be triggered before the rendering process.
Index
Details
cc.Director.EVENT_AFTER_DRAW Event
Module: cc
The event which will be triggered after the rendering process.