判断一个动作是否正在运行中

cocos2d-js并没有提供判断动作是否正在执行的方法,只有一个获取节点正在执行动作的总个数,这个方法显然不行。

好在actionManager中有一个getActionByTag()方法(通过目标对象和标签获取一个动作),通过这个方法,就可以判断节点是否正在运行某个动作

用法:

1、获取动作管理类的单利对象

var am = cc.director.getActionManage()   

2、通过getActionByTag()方法判断动作是否在运行

var obj = am.getActionByTag(1,this) ---> 参数(tag,target):tag,动作的标签。如 a步骤

                                                               target,执行动作的节点对象(哪个节点通过runAction运行一个动作,target就是谁。)

                                                               这个target也可以在动作对象中指定:am.setTarget(this);

if(obj){

   cc.log("动作对象存在,说明节点正在执行这个动作")

}

else{

   cc.log("动作对象不存在,说明节点没有执行这个动作")

}

 

a、创建一个动作,并给动作设置tag

var action = cc.moveTo(2,100,100);

action.tag = 1;

b、运行动作

this.runAction(action);

 

你可能感兴趣的:(cocos2d-js,cocos2d-js,判断动作是否正在执行)