Scheduler
类型
模块: cc
Scheduler 是负责触发回调函数的类。
通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。
有两种不同类型的定时器:
- update 定时器:每一帧都会触发。您可以自定义优先级。<br/>
- 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。<br/>
如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。
索引
属性(properties)
PRIORITY_SYSTEM
Number
系统服务的优先级。PRIORITY_NON_SYSTEM
Number
用户调度最低优先级。
方法
setTimeScale
设置时间间隔的缩放比例。
您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。
默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。
要使用 “fast forward(快进)” 效果,使用值大于 1.0。
注意:它影响该 Scheduler 下管理的所有定时器。getTimeScale
获取时间间隔的缩放比例。update
update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)scheduleCallbackForTarget
指定回调函数,调用对象等信息来添加一个新的定时器。</br> 当时间间隔达到指定值时,设置的回调函数将会被调用。</br> 如果 paused 值为 true,那么直到 resume 被调用才开始计时。</br> 如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样, 建议使用 scheduleUpdateForTarget 代替。</br> 如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER 可以让定时器一直循环触发。
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。schedule
定时器scheduleUpdate
使用指定的优先级为指定的对象设置 update 定时器。 update 定时器每一帧都会被触发。优先级的值越低,定时器被触发的越早。unschedule
根据指定的回调函数和调用对象。 如果需要取消 update 定时器,请使用 unscheduleUpdate()。unscheduleUpdate
取消指定对象的 update 定时器。unscheduleAllForTarget
取消指定对象的所有定时器,包括 update 定时器。unscheduleAll
取消所有对象的所有定时器,包括系统定时器。
不用调用此函数,除非你确定你在做什么。unscheduleAllWithMinPriority
取消所有优先级的值大于指定优先级的定时器。
你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。isScheduled
检查指定的回调函数和回调对象组合是否存在定时器。pauseAllTargets
暂停所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。pauseAllTargetsWithMinPriority
暂停所有优先级的值大于指定优先级的定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。resumeTargets
恢复指定数组中所有对象的定时器。
这个函数是 pauseAllCallbacks 的逆操作。pauseTarget
暂停指定对象的定时器。
指定对象的所有定时器都会被暂停。
如果指定的对象没有定时器,什么也不会发生。resumeTarget
恢复指定对象的所有定时器。
指定对象的所有定时器将继续工作。
如果指定的对象没有定时器,什么也不会发生。isTargetPaused
返回指定对象的定时器是否暂停了。scheduleUpdateForTarget
为指定对象设置 update 定时器。
update 定时器每一帧都会被调用。
优先级的值越低,越早被调用。unscheduleCallbackForTarget
根据指定的回调函数和调用对象对象取消相应的定时器。
如果需要取消 update 定时器,请使用 unscheduleUpdateForTarget()。unscheduleUpdateForTarget
取消指定对象的所有定时器。unscheduleAllCallbacksForTarget
取消指定对象的所有定时器,包括 update 定时器。unscheduleAllCallbacks
取消所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。unscheduleAllCallbacksWithMinPriority
取消所有优先级的值大于指定优先级的所有对象的所有定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
Details
属性(properties)
PRIORITY_SYSTEM
系统服务的优先级。
meta | description |
---|---|
类型 | Number |
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1140 |
PRIORITY_NON_SYSTEM
用户调度最低优先级。
meta | description |
---|---|
类型 | Number |
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1149 |
方法
setTimeScale
设置时间间隔的缩放比例。
您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。
默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。
要使用 “fast forward(快进)” 效果,使用值大于 1.0。
注意:它影响该 Scheduler 下管理的所有定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:362 |
参数列表
timeScale
Number
getTimeScale
获取时间间隔的缩放比例。
meta | description |
---|---|
返回 | Number |
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:382 |
update
update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:392 |
参数列表
dt
Number delta time
scheduleCallbackForTarget
指定回调函数,调用对象等信息来添加一个新的定时器。</br>
当时间间隔达到指定值时,设置的回调函数将会被调用。</br>
如果 paused 值为 true,那么直到 resume 被调用才开始计时。</br>
如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样,
建议使用 scheduleUpdateForTarget 代替。</br>
如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER
可以让定时器一直循环触发。
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:482 |
废弃(Deprecated) | since v3.4 please use .schedule |
参数列表
示例
//register a schedule to scheduler
var scheduler = cc.director.getScheduler();
scheduler.scheduleCallbackForTarget(this, function, interval, repeat, delay, !this._isRunning);
schedule
定时器
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:520 |
参数列表
示例
//register a schedule to scheduler
cc.director.getScheduler().schedule(callback, this, interval, !this._isRunning);
scheduleUpdate
使用指定的优先级为指定的对象设置 update 定时器。 update 定时器每一帧都会被触发。优先级的值越低,定时器被触发的越早。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:588 |
参数列表
unschedule
根据指定的回调函数和调用对象。 如果需要取消 update 定时器,请使用 unscheduleUpdate()。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:646 |
参数列表
unscheduleUpdate
取消指定对象的 update 定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:695 |
参数列表
target
Object The target to be unscheduled.
unscheduleAllForTarget
取消指定对象的所有定时器,包括 update 定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:717 |
参数列表
target
Object The target to be unscheduled.
unscheduleAll
取消所有对象的所有定时器,包括系统定时器。
不用调用此函数,除非你确定你在做什么。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:757 |
unscheduleAllWithMinPriority
取消所有优先级的值大于指定优先级的定时器。
你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:770 |
参数列表
minPriority
Number The minimum priority of selector to be unscheduled. Which means, all selectors whichpriority is higher than minPriority will be unscheduled.
isScheduled
检查指定的回调函数和回调对象组合是否存在定时器。
meta | description |
---|---|
返回 | Boolean |
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:824 |
参数列表
pauseAllTargets
暂停所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:862 |
pauseAllTargetsWithMinPriority
暂停所有优先级的值大于指定优先级的定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:875 |
参数列表
minPriority
Number
resumeTargets
恢复指定数组中所有对象的定时器。
这个函数是 pauseAllCallbacks 的逆操作。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:935 |
参数列表
targetsToResume
Array
pauseTarget
暂停指定对象的定时器。
指定对象的所有定时器都会被暂停。
如果指定的对象没有定时器,什么也不会发生。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:954 |
参数列表
target
Object
resumeTarget
恢复指定对象的所有定时器。
指定对象的所有定时器将继续工作。
如果指定的对象没有定时器,什么也不会发生。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:985 |
参数列表
target
Object
isTargetPaused
返回指定对象的定时器是否暂停了。
meta | description |
---|---|
返回 | Boolean |
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1018 |
参数列表
target
Object
scheduleUpdateForTarget
为指定对象设置 update 定时器。
update 定时器每一帧都会被调用。
优先级的值越低,越早被调用。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1042 |
废弃(Deprecated) | since v3.4 please use .scheduleUpdate |
参数列表
示例
//register this object to scheduler
var scheduler = cc.director.getScheduler();
scheduler.scheduleUpdateForTarget(this, priority, !this._isRunning );
unscheduleCallbackForTarget
根据指定的回调函数和调用对象对象取消相应的定时器。
如果需要取消 update 定时器,请使用 unscheduleUpdateForTarget()。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1063 |
废弃(Deprecated) | since v3.4 please use .unschedule |
参数列表
示例
//unschedule a callback of target
var scheduler = cc.director.getScheduler();
scheduler.unscheduleCallbackForTarget(this, callback);
unscheduleUpdateForTarget
取消指定对象的所有定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1081 |
废弃(Deprecated) | since v3.4 please use .unschedule |
参数列表
target
Object
示例
//unschedules the "update" method.
var scheduler = cc.director.getScheduler();
scheduler.unscheduleUpdateForTarget(this);
unscheduleAllCallbacksForTarget
取消指定对象的所有定时器,包括 update 定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1094 |
废弃(Deprecated) | since v3.4 please use unscheduleAllForTarget |
参数列表
target
Object
unscheduleAllCallbacks
取消所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1108 |
废弃(Deprecated) | since v3.4 please use .unscheduleAllWithMinPriority |
unscheduleAllCallbacksWithMinPriority
取消所有优先级的值大于指定优先级的所有对象的所有定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
meta | description |
---|---|
定义于 | https:/github.com/cocos-creator/engine/blob/master/cocos2d/core/CCScheduler.js:1123 |
废弃(Deprecated) | since v3.4 please use .unscheduleAllWithMinPriority |
参数列表
minPriority
Number