加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-JS 使用 scheduler 小结

发布时间:2020-12-14 19:46:00 所属栏目:百科 来源:网络整理
导读:环境: win7 64位 Cocos2d-JS v3.1 Cocos Code IDE v1.0.0.Final 本文纯粹是个人心得总结,若有异议,欢迎交流,本人新手 开始正文: 主要分为两种方式,一种是直接用延时函数,比如 scheduleCallbackForTarget, scheduleOnce等,另外一种就是在每帧的更新函

环境:

win7 64位

Cocos2d-JS v3.1

Cocos Code IDE v1.0.0.Final


本文纯粹是个人心得总结,若有异议,欢迎交流,本人新手


开始正文:


主要分为两种方式,一种是直接用延时函数,比如scheduleCallbackForTarget,scheduleOnce等,另外一种就是在每帧的更新函数里面进行控制。


1.第一种直接使用函数的方式:

这里只谈使用要注意的地方,至于函数参数,官方的API文档介绍的已经很清楚了(API查询地址:http://www.cocos2d-x.org/reference/html5-js/V3.0/index.html 在左上角输入cc.scheduler)


以this.scheduleOnce(回调函数,延迟时间)为例,这里要注意的是回调函数的使用。

1.1当回调函数为无参时,如:
[javascript] view plain copy
  1. noParameter:function(){
  2. cc.log("NOparameter!!");
  3. },
那么用的时候写函数名,不带括号而使用了(假如延迟时间为3秒):
copy
    this.scheduleOnce(this.noParameter,3);//回调函数带不带this视其作用域而定

1.2当回调函数为有参时:,如:
copy
    haveParameter:function(i){
  1. cc.log("Havaparameter"+i);
  2. copy
      functiona(){
    1. this.haveParameter(1111);//回调函数带不带this视其作用域而定
    2. 2.第二种在每帧更新函数里进行控制:

      以layer为例,在初始化的时候(ctor函数return true 前,onEnter等其他地方也可以,不过最好在初始化时)添加:
      copy
        this.scheduleUpdate();//表示使用每帧更新函数
      接着重写layer的update方法:(这里先定义了一个作用域在layer的变量time)
      copy
        update:function(dt){
      1. this.time+=dt;//dt为每一帧执行的时间,把它加起来等于运行了多长时间
      2. if(this.time>7){
      3. cc.log("每7秒显示一次");
      4. this.time=0;//每7秒重置为0,以达到循环显示
      5. }
      6. //cc.log(this.time);//time的当前时间
      1. },
      2. 转自:http://blog.csdn.net/et_sandy/article/details/40683921

      (编辑:李大同)

      【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读