CocosCreator中,setInterval的使用

2022-10-18  本文已影响0人  全新的饭

参考

Window setInterval() 方法

示例

运行后,按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);
    }
}

使用说明

  1. 参数单位是毫秒,不是秒。
  2. 开始执行后,会先等待interval时间,再执行第一次。
  3. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
上一篇下一篇

猜你喜欢

热点阅读