Cocos Creator API

1.2.0

Cocos Creator is a highly customizable game development tool that utilizes the power of cocos2d-x.

Scheduler

模块: cc

Scheduler 是负责触发回调函数的类。
通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。
有两种不同类型的定时器:
- update 定时器:每一帧都会触发。您可以自定义优先级。
- 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。
如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。

属性(properties)

PRIORITY_SYSTEM Number static

系统服务的优先级。

PRIORITY_NON_SYSTEM Number static

用户调度最低优先级。

There are no properties that match your current filter settings. You can change your filter settings in the index section on this page. index

方法

setTimeScale
(
  • timeScale
)

设置时间间隔的缩放比例。
您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。
默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。
要使用 “fast forward(快进)” 效果,使用值大于 1.0。
注意:它影响该 Scheduler 下管理的所有定时器。

名称 类型 描述
timeScale Number

getTimeScale ( ) Number

获取时间间隔的缩放比例。

返回:

类型: Number

update
(
  • dt
)

update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)

名称 类型 描述
dt Number

delta time

scheduleCallbackForTarget
(
  • target
  • callback_fn
  • interval
  • repeat
  • delay
  • paused
)
deprecated

废弃: since v3.4 please use .schedule

指定回调函数,调用对象等信息来添加一个新的定时器。
当时间间隔达到指定值时,设置的回调函数将会被调用。
如果 paused 值为 true,那么直到 resume 被调用才开始计时。
如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样, 建议使用 scheduleUpdateForTarget 代替。
如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER 可以让定时器一直循环触发。
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。

名称 类型 描述
target Object
callback_fn Function
interval Number
repeat Number
delay Number
paused Boolean

示例:

//register a schedule to scheduler
var scheduler = cc.director.getScheduler();
scheduler.scheduleCallbackForTarget(this, function, interval, repeat, delay, !this._isRunning);

schedule
(
  • callback
  • target
  • interval
  • repeat
  • delay
  • paused
)

定时器

名称 类型 描述
callback Function
target Object
interval Number
repeat Number
delay Number
paused Boolean

示例:

//register a schedule to scheduler
cc.director.getScheduler().schedule(callback, this, interval, !this._isRunning);

scheduleUpdate
(
  • target
  • priority
  • paused
  • updateFunc
)

使用指定的优先级为指定的对象设置 update 定时器。 update 定时器每一帧都会被触发。优先级的值越低,定时器被触发的越早。

名称 类型 描述
target Object
priority Number
paused Boolean
updateFunc Function

unschedule
(
  • callback
  • target
)

根据指定的回调函数和调用对象。 如果需要取消 update 定时器,请使用 unscheduleUpdate()。

名称 类型 描述
callback Function

The callback to be unscheduled

target Object

The target bound to the callback.

unscheduleUpdate
(
  • target
)

取消指定对象的 update 定时器。

名称 类型 描述
target Object

The target to be unscheduled.

unscheduleAllForTarget
(
  • target
)

取消指定对象的所有定时器,包括 update 定时器。

名称 类型 描述
target Object

The target to be unscheduled.

unscheduleAll ( )

取消所有对象的所有定时器,包括系统定时器。
不用调用此函数,除非你确定你在做什么。

unscheduleAllWithMinPriority
(
  • minPriority
)

取消所有优先级的值大于指定优先级的定时器。
你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。

名称 类型 描述
minPriority Number

The minimum priority of selector to be unscheduled. Which means, all selectors which priority is higher than minPriority will be unscheduled.

isScheduled
(
  • callback
  • target
)
Boolean

检查指定的回调函数和回调对象组合是否存在定时器。

名称 类型 描述
callback Function

The callback to check.

target Object

The target of the callback.

返回:

类型: Boolean

True if the specified callback is invoked, false if not.

pauseAllTargets ( )

暂停所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。

pauseAllTargetsWithMinPriority
(
  • minPriority
)

暂停所有优先级的值大于指定优先级的定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。

名称 类型 描述
minPriority Number

resumeTargets
(
  • targetsToResume
)

恢复指定数组中所有对象的定时器。
这个函数是 pauseAllCallbacks 的逆操作。

名称 类型 描述
targetsToResume Array

pauseTarget
(
  • target
)

暂停指定对象的定时器。
指定对象的所有定时器都会被暂停。
如果指定的对象没有定时器,什么也不会发生。

名称 类型 描述
target Object

resumeTarget
(
  • target
)

恢复指定对象的所有定时器。
指定对象的所有定时器将继续工作。
如果指定的对象没有定时器,什么也不会发生。

名称 类型 描述
target Object

isTargetPaused
(
  • target
)
Boolean

返回指定对象的定时器是否暂停了。

名称 类型 描述
target Object

返回:

类型: Boolean

scheduleUpdateForTarget
(
  • target
  • priority
  • paused
)
deprecated

废弃: since v3.4 please use .scheduleUpdate

为指定对象设置 update 定时器。
update 定时器每一帧都会被调用。
优先级的值越低,越早被调用。

名称 类型 描述
target Object
priority Number
paused Boolean

示例:

//register this object to scheduler
var scheduler = cc.director.getScheduler();
scheduler.scheduleUpdateForTarget(this, priority, !this._isRunning );

unscheduleCallbackForTarget
(
  • target
  • callback
)
deprecated

废弃: since v3.4 please use .unschedule

根据指定的回调函数和调用对象对象取消相应的定时器。
如果需要取消 update 定时器,请使用 unscheduleUpdateForTarget()。

名称 类型 描述
target Object
callback Function

callback[Function] or key[String]

示例:

//unschedule a callback of target
var scheduler = cc.director.getScheduler();
scheduler.unscheduleCallbackForTarget(this, callback);

unscheduleUpdateForTarget
(
  • target
)
deprecated

废弃: since v3.4 please use .unschedule

取消指定对象的所有定时器。

名称 类型 描述
target Object

示例:

//unschedules the "update" method.
var scheduler = cc.director.getScheduler();
scheduler.unscheduleUpdateForTarget(this);

unscheduleAllCallbacksForTarget
(
  • target
)
deprecated

废弃: since v3.4 please use unscheduleAllForTarget

取消指定对象的所有定时器,包括 update 定时器。

名称 类型 描述
target Object

unscheduleAllCallbacks ( ) deprecated

废弃: since v3.4 please use .unscheduleAllWithMinPriority

取消所有对象的所有定时器。
不要调用这个方法,除非你知道你正在做什么。

unscheduleAllCallbacksWithMinPriority
(
  • minPriority
)
deprecated

废弃: since v3.4 please use .unscheduleAllWithMinPriority

取消所有优先级的值大于指定优先级的所有对象的所有定时器。
你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。

名称 类型 描述
minPriority Number

There are no methods that match your current filter settings. You can change your filter settings in the index section on this page. index