Cocos2d V3 和 Spritebuilder - 时间轴动画不运行后续时间
Posted
技术标签:
【中文标题】Cocos2d V3 和 Spritebuilder - 时间轴动画不运行后续时间【英文标题】:Cocos2d V3 and Spritebuilder - Timeline animation not running subsequent times 【发布时间】:2014-08-06 18:17:45 【问题描述】:我有一个包含时间线动画的 CCB 文件。我像这样加载文件。
CCSprite *spriteAnimation = (CCSprite*)[CCBReader load:@"MyGreatAnimation"];
spriteAnimation.paused = TRUE;
稍后,我将其添加到场景中并运行动画
[MyScene addChild:spriteAnimation];
CCAnimationManager* animationManager = _deletionAnimaion.userObject;
[animationManager runAnimationsForSequenceNamed:@"Default Timeline"];
这很棒。我的动画运行。然后我从场景中删除spriteAnimation
,直到我再次需要它为止。
[spriteAnimation removeFromParent];
.
问题
下次将动画添加到场景中时,我不知道如何让动画运行。
我试过了:
[animationManager jumpToSequenceNamed:@"Default Timeline" time:0];
还有..
[animationManager runAnimationsForSequenceNamed:@"Default Timeline"];
但动画似乎没有运行。如果此时我调用:
spriteAnimation.userObject.runningSequenceName
查看运行顺序,返回NULL
。
.
我的问题
如何任意重复运行时间轴动画?
要清楚,我不是在问循环动画。我想在需要时从第 1 帧开始。
【问题讨论】:
在保留属性中保留 spriteAnimation? 【参考方案1】:如果你反复需要它,你不应该把它从场景中移除:
[spriteAnimation removeFromParent];
相反,只是让动画暂时不可见:
spriteAnimation.visible = NO;
稍后让它再次可见。
毕竟,当您删除一个节点时,它会从场景层次结构中消失,除非您 addChild: 它回到我在上面的代码中看不到的位置。
【讨论】:
对不起,省略了 addChild: 形成我上面的示例代码。我正在使用 addChilde: 但它没有用。我也尝试设置 visible=no,但也没有用。最终起作用的是将不透明度设置为 0 并设置屏幕的位置(因此它不会包含在绘图中)。然后当我再次想要它时,我只是将它移到适当位置并将不透明度设置为 1。我想知道从我的父级移除它的行为是否会清除动画?以上是关于Cocos2d V3 和 Spritebuilder - 时间轴动画不运行后续时间的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Cocos2d v3 中设置 CCTextField
Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法