cocos代码研究(11)ActionManager类学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

cocos代码研究(11)ActionManager类学习笔记
理论部分
ActionManager是⼀个单例类,管理所有动作。

通常你不需要直接使⽤这个类。

⼤多情况下,你将使⽤Node的接⼝,它提供了更友好的封装但也有⼀些情况下,你可能需要使⽤这个单例。

⽰例:
当你想要运⾏⼀个动作,但⽬标不是节点类型。

当你想要暂停/恢复动作。

代码部分
void addAction (Action *action, Node *target, bool paused)
增加⼀个动作,同时还需要提供动作的⽬标对象,⽬标对象是否暂停作为参数。

当⽬标状态paused为true,动作将不会被执⾏。

实例:
auto director = Director::getInstance();
director->getActionManager()->addAction(action, grossini, true);
void removeAllActions ()
删除所有⽬标对象的所有动作。

void removeAllActionsFromTarget (Node *target)
从⼀个特定的⽬标删除所有动作。

属于该⽬标的所有的动作将被删除。

void removeAction (Action *action)
删除⼀个动作。

void removeActionByTag (int tag, Node *target)
删除⽬标对象下特定标签标记的⼀个动作,将删除⾸个匹配到的动作。

void removeAllActionsByTag (int tag, Node *target)
删除⽬标对象下特定标签标记的所有动作。

void removeActionsByFlags (unsigned int flags, Node *target)
删除⽬标对象下特定标记组动作
Action * getActionByTag (int tag, const Node *target) const
通过⽬标对象和标签获取⼀个动作。

ssize_t getNumberOfRunningActionsInTarget (const Node *target) const
返回指定⽬标下所有正在运⾏的动作数量。

组合动作被算作⼀个动作。

例⼦:
ssize_t numberOfRunningActionsInTarget (Node *target) const
void pauseTarget (Node *target)
暂停⽬标对象:所有正在运⾏的动作和新添加的动作都将会暂停。

void resumeTarget (Node *target)
让⽬标对象恢复运⾏。

在执⾏序列中所有被暂停的动作将重新恢复运⾏。

实例:
auto director = Director::getInstance();
director->getActionManager()->resumeTarget(node);
Vector< Node * > pauseAllRunningActions ()
暂停所有正在运⾏的动作,返回⼀个动作被暂停的⽬标对象列表。

void resumeTargets (const Vector< Node * > &targetsToResume)
让⼀组⽬标对象恢复运⾏。

相关文档
最新文档