一、setTimeOut

3秒后打印abc。只执行一次。

setTimeout(()=>{console.log("abc"); }, 3000);

删除计时器,3秒后不会输出abc。

let timeIndex;
timeIndex = setTimeout(()=>{console.log("abc"); }, 3000);
clearTimeout(timeIndex);

setTimeout这样写,test函数中输出的this是Window对象

@ccclass
export default class Helloworld extends cc.Component {
 
    private a = 1;
 
    start() {
        setTimeout(this.test, 3000);
    }
 
    private test(){
        console.log(this.a);  //输出undefined
        console.log(this);    //Window
    }
}

使用箭头函数

@ccclass
export default class Helloworld extends cc.Component {
 
    private a = 1;
 
    start() {
        setTimeout(()=>{this.test()}, 3000);
    }
 
    private test(){
        console.log(this.a);  //输出1
        console.log(this);    //Helloworld
    }
}

二、setInterval

1秒后输出abc,重复执行,每秒都会输出一个abc。

setInterval(()=>{console.log("abc"); }, 1000);

删除计时器,不会再输出abc。

let timeIndex;
timeIndex = setInterval(()=>{console.log("abc"); }, 1000);
clearInterval(timeIndex);

三、Schedule

每个继承cc.Component的都自带了这个计时器

schedule(callback: Function, interval?: number, repeat?: number, delay?: number): void;

延迟3秒后,输出abc,此后每隔1秒输出abc,重复5次。所以最终会输出5+1次abc。

this.schedule(()=>{console.log("abc")},1,5,3);

删除schedule(若要删除,则不能再使用匿名函数了,得能访问到要删除的函数)

private count = 1;
 
start() {
     
    this.schedule(this.test,1,5,3);
 
    this.unschedule(this.test);
}
 
private test(){
    console.log(this.count);
}

全局的schedule

相当于一个全局的计时器吧,在cc.director上。注意必须调用enableForTarget()来注册id,不然会报错。

start() {
    let scheduler:cc.Scheduler = cc.director.getScheduler();
    scheduler.enableForTarget(this);
    //延迟3秒后,输出1,此后每1秒输出1,重复3次。一共输出1+3次
    scheduler.schedule(this.test1, this, 1, 3,3, false);
    //延迟3秒后,输出1,此后每1秒输出1,无限重复
    scheduler.schedule(this.test2, this, 1, cc.macro.REPEAT_FOREVER,3, false);
}
 
private test1(){
    console.log("test1");
}
 
private test2(){
    console.log("test2");
}
//删除计时器
scheduler.unschedule(this.test1, this);

以上就是详解CocosCreator中几种计时器的使用方法的详细内容,更多关于CocosCreator计时器的资料请关注程序员的世界其它相关文章!

详解CocosCreator中几种计时器的使用方法的更多相关文章

  1. 详解CocosCreator系统事件是怎么产生及触发的

    环境Cocos Creator 2.4Chrome 88概要模块作用事件监听机制应该是所有游戏都必不可少的内容。不管是按钮的点击还是物体的拖动,都少不了事件的监听与分发。主要的功能还是通过节点的on/once函数,对系统事件(如触摸、点击)进行监听,随后触发对应的游戏逻辑。同时,也支持用户发射/监听......

  2. 如何使用CocosCreator对象池

    前言:在运行时进行节点的创建( cc.instantiate )和销毁( node.destroy )操作是非常耗费性能的,因此我们在比较复杂的场景中,通常只有在场景初始化逻辑( onLoad )中才会进行节点的创建,在切换场景时才会进行节点的销毁。如果制作有大量敌人或子弹需要反复生成和被消灭的动作......

  3. JavaScript如何操作css

    原本应该是由css进行控制html中的div的宽高和背景颜色,但是在下方使用了JavaScript进行重新调用了div盒子,并且覆盖了css原本的属性内容。 需求目标:由 100 像素的粉色背景色的div盒子变成了 300像素的橘黄色效果的div盒子 代码如下: ......

  4. 如何在微信小程序实现一个幸运转盘小游戏

    本人主要介绍如何在微信小程序里面开发一个幸运转盘的小游戏,里面主要用到javascript和 css 语法,就可以轻松实现一个简单的幸运转盘(以6个奖品区为例)。前言本次教程需要你掌握一定量 javascript 和 css 基础知识,并且你需要有小程序一定的开发经验,具体需要掌握知识点有:css ......

  5. 原生JavaScript实现轮播图

    本文实例为大家分享了JavaScript实现轮播图的具体代码,供大家参考,具体内容如下效果:代码:* {margin: 0;padding: 0;}ul,li {list-style: none;}.banner {width: 1200px;height: 535px;border: 1px so......

  6. 深入理解Js中的this

    深入理解Js中的thisJavaScript作用域为静态作用域static scope,但是在Js中的this却是一个例外,this的指向问题就类似于动态作用域,其并不关心函数和作用域是如何声明以及在何处声明的,只关心它们从何处调用,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能......

  7. JavaScript实现点击切换功能

    本文实例为大家分享了JavaScript实现点击切换功能的具体代码,供大家参考,具体内容如下在实际应用中,点击或者移入某一元素上,弹出下拉菜单或者页面,是网页设计的常见操作。下面我们实现一种点击菜单实现菜单切换,使用js提供三种方式实现该功能。1.使用html设计基本结构多Tab点击切换10元套餐3......

  8. 如何用JS实现网页瀑布流布局

    前言:瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式。即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置。什么是瀑布流布局:先看效果:图片多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直......

  9. 使用JS调用WebService接口

    <> $(document).ready(function () { var username = "admin"; var password = "123456";       /*==J......

  10. js实现简单商品筛选功能

    本文实例为大家分享了js实现商品筛选功能的具体代码,供大家参考,具体内容如下应用场景:商品筛选Document* {margin: 0;padding: 0;list-style: none;text-decoration: none;}.choose {width: 500px;height: a......

随机推荐

  1. Java Lombok简介、使用、工作原理、优缺点

    简介官方介绍Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or ......

  2. vue element和nuxt的使用技巧分享

    1.element的时间选择提交的格式转化例如Fri Sep 07 2018 00:00:00 GMT+0800 (中国标准时间)转化为 2020-01-11的格式这记载datepicker中添加一句value-format=”yyyy-MM-dd”2.动态循环复选框时,无法选中问题this.men......

  3. 如何使用CocosCreator对象池

    前言:在运行时进行节点的创建( cc.instantiate )和销毁( node.destroy )操作是非常耗费性能的,因此我们在比较复杂的场景中,通常只有在场景初始化逻辑( onLoad )中才会进行节点的创建,在切换场景时才会进行节点的销毁。如果制作有大量敌人或子弹需要反复生成和被消灭的动作......

  4. R语言数据重塑知识点总结

    R 语言中的数据重塑是关于改变数据被组织成行和列的方式。 大多数时间 R 语言中的数据处理是通过将输入数据作为数据帧来完成的。 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的数据帧格式与我们接收数据帧的格式不同。 R 语言具有许多功能,在数据帧中拆分,合并和将行更改为列,反之亦然。于......

  5. Vue实现摇一摇功能(兼容ios13.3以上)

    最近做了个摇一摇类似的功能,使用的是shake.js,但在ios13.3之前的版本中可以触发摇一摇,之后的版本需要兼容,需要制作一个让用户能手动点击的弹框,才能使用户授权动作与方向的权限。(需使用https协议)温馨提示由于ios系统需要手动获取访问动作与方向的权限,为保障游戏的正常进行,请在访问提......

  6. python实现ROA算子边缘检测算法

    python实现ROA算子边缘检测算法的具体代码,供大家参考,具体内容如下代码import numpy as npimport cv2 as cvdef ROA(image_path, save_path, threshold):img = cv.imread(image_path)image = ......

  7. 本章节我们讲述了如何通过admin.py来快速的完成页面功能的构建,并通过自定义action快速的实现了任务分解功能,并根据业务进展也逐步的完善了查看页面以内联表的方式显示作业详情。根据需求定义“任务”是一个完整的业务搬运流程,整个流程涉及到多个机构(设备)分别动作执行多个步骤,所以依据前面的模型设......

  8. java实现表格数据的存储

    本文实例为大家分享了java实现表格数据存储的具体代码,供大家参考,具体内容如下一、二维数组实现表格数据的存储import java.util.Arrays;/*** 使用Object[][]存储表格信息* @author Lhk**/public class Array_Test01 {publi......

  9. python生成随机数、随机字符、随机字符串的方法示例

    本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串:Windows 10PyCharm 2018.3.5 for Windows (exe)python 3.6.8 Windows x86 executable installer(1) 生成随机数随机整数imp......

  10. input标签checkbox选中触发事件的方法

    1.方法一function checkboxOnclick(checkbox){ if ( checkbox.checked == true){ //Action for checked }else{ //Action for not checked }} 2.方法二$('#allSelect'......