2013-03-19 100 views
1

我正在使用cocosbuilder 2.1运行cocos2d,并使用cocosbuilder动画委托(CCBAnimationManagerDelegate::completedAnimationSequenceNamed)在动画完成时得到通知并采取其他操作,如触发另一个cocosbuilder动画。使用ccbanimationmanager运行动画后运行另一个动画

它在第一次从委托运行动画foodfactoryshow时运行良好,动画完成后它也正确运行restoration动画。但是,当restoration动画完成时,-(void) completedAnimationSequenceNamed方法的参数nameNULL!?

-(void) completedAnimationSequenceNamed:(NSString*)name 
{ 
if ([name isEqualToString:@"foodfactoryshow"]) 
{ 
    [manager runAnimationsForSequenceNamed:@"restoration"]; 
} 
if ([name isEqualToString:@"restoration"]) 
{ 
    [self colorLayerChanged]; 
    self.gameLayer.isLock = true; 
} 
} 

这是一个错误还是我不应该从CCBAnimationManagerDelegate::completedAnimationSequenceNamed方法运行动画!?

在此先感谢您的帮助。

回答

2

我认为这是一个CCBReader错误。在CocosBuilder的github页面(https://github.com/cocos2d/CocosBuilder/issues/121)中有一个关于它的问题。它应固定在CocosBuilder + CCBReader的最新版本,但是,如果你想使用2.1版本,你可以改变CCBAnimationManager的“sequenceCompleted”的方法如下:

- (void) sequenceCompleted 
{ 
    NSString *completedSequenceName = [runningSequence.name copy]; 
    int nextSeqId = runningSequence.chainedSequenceId; 
    runningSequence = NULL; 

    if (nextSeqId != -1) 
    { 
     [self runAnimationsForSequenceId:nextSeqId tweenDuration:0]; 
    } 

    [delegate completedAnimationSequenceNamed:completedSequenceName]; 
    [completedSequenceName release]; 
} 
+0

谢谢!它真的帮助我很多! – NJUHOBBY 2013-03-28 03:23:31