使用Lua在Cocos 2d中访问一个动作序列的子动作。

我有这样一个动作序列:

cc.Sequence:create(move_ease_in, cc.CallFunc:create(calls1), move_ease_in_back, cc.CallFunc:create(calls2))

我想将这些动作复制到另一个精灵,并删除所有 CallFunc 动作。因此,我需要解析动作并访问动作树中的每个节点以删除特定动作。

我知道可以这样做:

anotherSprite:runAction(cc.Sequence:create(move_ease_in, move_ease_in_back))

但是我的程序中实际的动作更加复杂,而且有太多的动作,因此我必须通过访问每一个动作的子动作来完成它,而且还要获取每个动作的类型。

换句话说,在 lua 中是否有一种方法可以访问动作的所有子动作并获取每个动作的类型?

我使用的是 cocos 2d 3.0 + lua 5.1。

点赞
用户1251821
用户1251821

你不能访问 cc.Sequence 的子动作。在它的 C++ 实现中,Sequence 只包含两个子动作。如果你用三个子动作创建一个 Sequence,那么这个序列将如下所示:Sequence(action1, Sequence(action2, action3))

因此,如果你真的需要访问子动作,你可以扩展 cc.Sequence,并在扩展类中保存子动作,这样你就可以访问它们。

2014-08-29 19:41:44