2013-03-19 104 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