Delay 组件
一个在给定时间之后触发函数的组件。
这个使用 Crafty 内部时钟同步,一般优先采用setTimeout
。
方法
Back to top
.cancelDelay()
public this.cancelDelay(Function callback)
- callback
调用 .delay 时绑定的函数
cancelDelay 方法将会取消之前的delay设定。
例子
var doSomething = function(){
Crafty.log("doing something");
};
// execute doSomething each 100 miliseconds indefinetely
var ent = Crafty.e("Delay").delay(doSomething, 100, -1);
// and some time later, cancel further execution of doSomething
ent.cancelDelay(doSomething);
Back to top
.delay()
public this.delay(Function callback, Number delay[, Number repeat[, Function callbackOff]])
- callback
将在给定的毫秒后执行函数,如果函数是通过引用传递的,后边还可以取消。
- delay
毫秒数
- repeat
(可选) 执行函数的次数。如果值为零,函数执行一次;如果值为n>0,执行n+1次;如果值为 -1,执行无限次。默认执行一次。
- callbackOff
(可选) 函数将在执行完成后触发。(所有次数都执行完成)。如果执行次数为 -1, callbackOff 永远不会被触发。
delay 方法将在指定的毫秒数后执行一个方法。
它不是 setTimeout
的包装。
如果 Crafty 暂停了, 计时也会暂停;当 Crafty 继续时,计时也继续。
如果实体被销毁,计时也会被销毁,而且不会产生任何效果。
例子
delay 实例
Crafty.log("start");
Crafty.e("Delay").delay(function() {
Crafty.log("100ms later");
}, 100, 0);
所有执行次数完成后触发毁掉函数
Crafty.log("start");
Crafty.e("Delay").delay(function() {
Crafty.log("100ms later");
}, 100, 3, function() {
Crafty.log("delay finished");
});
Back to top
.pauseDelays()
public this.pauseDelays()
pauseDelays 方法将会停止计时,直到实体被唤醒。
例子
var doSomething = function(){
Crafty.log("doing something");
};
// execute doSomething each 100 miliseconds indefinetely
var ent = Crafty.e("Delay").delay(doSomething, 100, -1);
// and some time later, the gameplay is paused
ent.pauseDelays();
Back to top
.resumeDelays()
public this.resumeDelays()
resumeDelays 将会唤醒之前被暂停的实体。
例子
var doSomething = function(){
Crafty.log("doing something");
};
// execute doSomething each 100 miliseconds indefinetely
var ent = Crafty.e("Delay").delay(doSomething, 100, -1);
// and some time later, the gameplay is paused (or only
// a part of it is frozen)
ent.pauseDelays();
// the player resumes gameplay
ent.resumeDelays();