2014-06-13 31 views
0

我無法讓這個工作,它讓我瘋狂。我只是想在被調用時播放我的動畫。我正在使用​​和Cocos2d。我有一個CCNode,我使用從時間線播放Spritebuilder動畫 - Cocos2d

#import "heroCharacter.h" 
//Reference 
CCNode *_heroContainer; 
//Then 

CCNode *hero = [CCBReader loadAsScene:@"heros/panda"]; 
[_heroContainer addChild:hero z:1 name:@"level1"]; 

CCNode包含各種時間軸動畫導入到場景中。

我想打電話給使用動畫:

CCBAnimationManager* animationManager = _heroContainer.userObject; 
NSLog(@"AM: %@", animationManager); 
[animationManager runAnimationsForSequenceNamed:@"ouch"]; 

AM返回NULL值。我將如何正確引用?

我認爲這是因爲我導入它,它正在失去它的連接,但不知道如何正確地做到這一點。

回答

1

動畫管理器是而不是上要運行動畫的節點上,但始終在CCB的根節點上。我也絆倒了。 :)

例如,如果你的英雄是GameScene.ccb的一部分,那麼你將不得不獲得對GameScene的根節點(通常是自定義類)的引用並從該對象獲取動畫管理器。

如果你的英雄是在另一個被GameScene.ccb引用的CCB(比如player.ccb),並且你想播放的時間軸動畫是在player.ccb中編輯的,那麼你必須從sub獲得動畫管理器GameScene.ccb中引用player.ccb的文件節點。每個CCB的根節點都包含存儲CCB時間軸動畫的動畫管理器。

請注意,v3.1將具有animationManager屬性,如果您已經在v3.1(develop分支),那麼您必須使用該屬性而不是userObject