我在Cocos2D应用中恢复动画比较困难。我将CCSprite添加为CCSpriteBatchNode的子项,然后执行一个动画。
所以当我点击暂停按钮时,我会这样做:
但是我遇到了崩溃的情况:
所以当我点击暂停按钮时,我会这样做:
[[[CCDirector sharedDirector] actionManager] pauseAllRunningActions];
现在文档中建议使用以下方法:
[[[CCDirector sharedDirector] actionManager] resumeTargets:];
然而,我尝试了包括精灵本身、批处理节点、self(CCLayer)和当前的CCScene在内的所有可能的目标,但都没有奏效。
是否有一种可以恢复所有目标的方法?
编辑:我在一个Singleton中声明了一个NSSet,并执行以下操作:
[Singleton sharedSingleton].pauseTargets = [[[CCDirector sharedDirector] actionManager] pauseAllRunningActions];
[[[CCDirector sharedDirector] actionManager] pauseAllRunningActions];
然后,我执行以下操作:
[[[CCDirector sharedDirector] actionManager] resumeTargets:[Singleton sharedSingleton].pauseTargets];
但是我遇到了崩溃的情况:
2012-08-29 18:40:05.433 App[34872:707] -[__NSMallocBlock__ countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1e075a40
2012-08-29 18:40:05.434 App[34872:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSMallocBlock__ countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x1e075a40'
[[CCDirector sharedDirector]pause]
和[[CCDirector sharedDirector]resume]
吗? - 0xDE4E15BresumeTargets:
方法中传递返回的NSSet,例如:[[[CCDirector sharedDirector] actionManager] resumeTargets:theTargets];
。 - 0xDE4E15B