前端之家收集整理的这篇文章主要介绍了
cocos js update(),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
环境:
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 当回调函数为无参时,如:
|
noParameter:function(){
@H_ 404_49@
cc.
log
(
"NOparameter!!"
);
@H_ 404_49@
|
@H_
404_49@
@H_
404_49@
那么用的时候写函数名,不带括号而使用了(假如延迟时间为3秒):
|
this
.scheduleOnce(
this
.noParameter,3);
@H_ 404_49@
@H_ 404_49@ |
@H_
404_49@
@H_
404_49@
1.2 当回调函数为有参时,如:
|
haveParameter:function(i){
@H_ 404_49@
cc.
log
(
"Havaparameter"
+i);
@H_ 404_49@
|
@H_
404_49@
@H_
404_49@
那么使用的时候为了能正常延时,需要在外面套一层function name(){},再调用,不然就会在程序一开始时运行,没有延时效果,不过这样做,实际上变成了上面无参时的情况,在一个无参的函数里面调用其他函数而已:
|
this
.scheduleOnce(functiona(){
@H_ 404_49@
this
.haveParameter(1111);
@H_ 404_49@
|
@H_
404_49@
@H_
404_49@
2. 第二种在每帧更新函数里进行控制
以layer为例,在初始化的时候(ctor函数return true 前,onEnter等其他地方也可以,不过最好在初始化时)添加:
|
this
.scheduleUpdate();
@H_ 404_49@
@H_ 404_49@ |
@H_
404_49@
@H_
404_49@
接着重写layer的update方法:(这里先定义了一个作用域在layer的变量time)
|
update:function(dt){
@H_ 404_49@
this
.
time
+=dt;
@H_ 404_49@
if
(
this
.
time
>7){
@H_ 404_49@
cc.
log
(
"每7秒显示一次"
);
@H_ 404_49@
this
.
time
=0;
@H_ 404_49@
|
@H_
404_49@
@H_
404_49@