I am trying to play a .gif animation in cocos2D. For this i am using the library glgif. Now, to display the animation i am pausing the Director, adding a subview to show the animation and after the animation is done i am resuming the Director. However, I am not able to resume the state of the Director and it shows blank. So I tried this without pausing and resuming this Director and it still did not work.I also tried detaching the director before tha animation and adding it back afterwards and even that did not work.
So is there a way to pause/suspend the Director in the application and properly restore is back?
Thanks.
Code sample:
[[Director sharedDirector] pause];
[[Director sharedDirector] detach];
AppDelegate *del = [[UIApplication sharedApplication] delegate];
[del.window addSubview:del.viewController.view];
[del.window makeKeyAndVisible]; // this is code to call glgif class and start anim.
//code to resume the director
AppDelegate *del = [[UIApplication sharedApplication] delegate];
[[Director sharedDirector] resume];
[[Director sharedDirector] attachInView:del.window];
MScene *m = [MScene node];
[[Director sharedDirector] replaceScene:m];
If it's a simple overlay, just pause and do your UIKit calls directly. Like this:
- (void)playerChanged
{
[[CCDirector sharedDirector] pause];
UIAlertView *alert = [[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"CHANGEPLAYER", nil)
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:NSLocalizedString(@"OK", nil),
nil
] autorelease];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
(void)alertView;
(void)buttonIndex;
[[CCDirector sharedDirector] resume];
}
If you're really taking over the whole window, then dispose of it completely
[[CCDirector sharedDirector] end];
and redo your intialization and call runWithScene when you go back. The detach/attach dance does not seem to work well or consistently.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With