CocosCreator中,setInterval的使用
2022-10-18 本文已影响0人
全新的饭
参考
示例
运行后,按A后,每秒调用myFunc。按D后,停止调用。
打印信息
import { _decorator, Component, Node, Vec3, absMax, Label, input, Input, KeyCode, EventKeyboard } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('Test')
export class Test extends Component
{
private _intervalId: number;
start():void
{
input.on(Input.EventType.KEY_DOWN, this.onKeyDown, this);
}
onDestroy(): void
{
input.off(Input.EventType.KEY_DOWN, this.onKeyDown, this);
}
private onKeyDown(event:EventKeyboard): void
{
if (event.keyCode == KeyCode.KEY_A)
{
this.myBegin();
}
else if (event.keyCode == KeyCode.KEY_D)
{
this.myEnd();
}
}
private myFunc(): void
{
console.info("当前时间:" + this.getCurTime());
}
private getCurTime(): string
{
const date = new Date();
const str = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
return str;
}
private myBegin(): void
{
console.info('我的开始!'+this.getCurTime());
this._intervalId = setInterval(() => this.myFunc(), 1000);
}
private myEnd(): void
{
console.info('我的结束!' + this.getCurTime());
clearInterval(this._intervalId);
}
}
使用说明
- 参数单位是毫秒,不是秒。
- 开始执行后,会先等待interval时间,再执行第一次。
- setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。