Scheduler 类型
模块: cc
Scheduler 是负责触发回调函数的类。
通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。
有两种不同类型的定时器:
- update 定时器:每一帧都会触发。您可以自定义优先级。<br/>
- 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。<br/>
如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。
索引
属性(properties)
PRIORITY_SYSTEMNumber系统服务的优先级。PRIORITY_NON_SYSTEMNumber用户调度最低优先级。
方法
enableForTarget任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法,并且应该在调用任何 Scheduler API 之前调用这个方法。setTimeScale设置时间间隔的缩放比例。getTimeScale获取时间间隔的缩放比例。updateupdate 调度函数。schedule指定回调函数,调用对象等信息来添加一个新的定时器。scheduleUpdate使用指定的优先级为指定的对象设置 update 定时器。unschedule取消指定对象定时器。unscheduleUpdate取消指定对象的 update 定时器。unscheduleAllForTarget取消指定对象的所有定时器,包括 update 定时器。unscheduleAll取消所有对象的所有定时器,包括系统定时器。unscheduleAllWithMinPriority取消所有优先级的值大于指定优先级的定时器。isScheduled检查指定的回调函数和回调对象组合是否存在定时器。pauseAllTargets暂停所有对象的所有定时器。pauseAllTargetsWithMinPriority暂停所有优先级的值大于指定优先级的定时器。resumeTargets恢复指定数组中所有对象的定时器。pauseTarget暂停指定对象的定时器。resumeTarget恢复指定对象的所有定时器。isTargetPaused返回指定对象的定时器是否暂停了。
Details
属性(properties)
PRIORITY_SYSTEM
系统服务的优先级。
| meta | description |
|---|---|
| 类型 | Number |
| 定义于 | cocos2d/core/CCScheduler.js:1092 |
PRIORITY_NON_SYSTEM
用户调度最低优先级。
| meta | description |
|---|---|
| 类型 | Number |
| 定义于 | cocos2d/core/CCScheduler.js:1101 |
方法
enableForTarget
任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法,并且应该在调用任何 Scheduler API 之前调用这个方法。
这个方法会给对象添加一个 _id 属性,如果这个属性不存在的话。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:351 |
参数列表
targetObject
setTimeScale
设置时间间隔的缩放比例。
您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。
默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。
要使用 “fast forward(快进)” 效果,使用值大于 1.0。
注意:它影响该 Scheduler 下管理的所有定时器。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:370 |
参数列表
timeScaleNumber
getTimeScale
获取时间间隔的缩放比例。
| meta | description |
|---|---|
| 返回 | Number |
| 定义于 | cocos2d/core/CCScheduler.js:390 |
update
update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:400 |
参数列表
dtNumber delta time
schedule
指定回调函数,调用对象等信息来添加一个新的定时器。
如果 paused 值为 true,那么直到 resume 被调用才开始计时。
当时间间隔达到指定值时,设置的回调函数将会被调用。
如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样,
建议使用 scheduleUpdateForTarget 代替。
如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER
可以让定时器一直循环触发。
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时,单位: 秒。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:486 |
参数列表
示例
//register a schedule to scheduler
cc.director.getScheduler().schedule(callback, this, interval, !this._isRunning);
scheduleUpdate
使用指定的优先级为指定的对象设置 update 定时器。 update 定时器每一帧都会被触发,触发时自动调用指定对象的 "update" 函数。 优先级的值越低,定时器被触发的越早。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:579 |
参数列表
unschedule
取消指定对象定时器。 如果需要取消 update 定时器,请使用 unscheduleUpdate()。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:641 |
参数列表
unscheduleUpdate
取消指定对象的 update 定时器。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:698 |
参数列表
targetObject The target to be unscheduled.
unscheduleAllForTarget
取消指定对象的所有定时器,包括 update 定时器。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:728 |
参数列表
targetObject The target to be unscheduled.
unscheduleAll
取消所有对象的所有定时器,包括系统定时器。
不要调用此函数,除非你确定你在做什么。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:776 |
unscheduleAllWithMinPriority
取消所有优先级的值大于指定优先级的定时器。
你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:789 |
参数列表
minPriorityNumber The minimum priority of selector to be unscheduled. Which means, all selectors whichpriority is higher than minPriority will be unscheduled.
isScheduled
检查指定的回调函数和回调对象组合是否存在定时器。
| meta | description |
|---|---|
| 返回 | Boolean |
| 定义于 | cocos2d/core/CCScheduler.js:843 |
参数列表
pauseAllTargets
暂停所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:889 |
pauseAllTargetsWithMinPriority
暂停所有优先级的值大于指定优先级的定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:902 |
参数列表
minPriorityNumber
resumeTargets
恢复指定数组中所有对象的定时器。
这个函数是 pauseAllCallbacks 的逆操作。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:962 |
参数列表
targetsToResumeArray
pauseTarget
暂停指定对象的定时器。
指定对象的所有定时器都会被暂停。
如果指定的对象没有定时器,什么也不会发生。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:981 |
参数列表
targetObject
resumeTarget
恢复指定对象的所有定时器。
指定对象的所有定时器将继续工作。
如果指定的对象没有定时器,什么也不会发生。
| meta | description |
|---|---|
| 定义于 | cocos2d/core/CCScheduler.js:1020 |
参数列表
targetObject
isTargetPaused
返回指定对象的定时器是否暂停了。
| meta | description |
|---|---|
| 返回 | Boolean |
| 定义于 | cocos2d/core/CCScheduler.js:1059 |
参数列表
targetObject