当CCnode执行runAction的时候,runAction会调用动作管理类的addAction方法将它自己执行的动作传递给动作管理类,动作管理类再将动作添加到自己的动作序列中。
动过管理类通过定时刷新自己的update方法,在update方法中调用自己的动作序列中的每一个动作的step,这些step根据自身的完成进度去update或是结束行为。
动作管理单例驱动每一个动作去更新自己的逻辑,而runAction只是将行为对象添加到动作管理类的待执行队列中去。当节点被清除或者行为结束时,动作管理类将会自动将动作从队列中删除,不需要程序员管理。
一般情况不需要使用动作管理类来管理动作,一般情况都是使用CCNode的stopAction,stopActionByTag,stopAllActions等函数来管理,但是有两种情况需要使用动作管理类来管理:
1、动作的执行者不是同一个节点;
2、需要暂停/重启时;
时间: 2024-09-28 21:59:54