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);