我有点奇怪的问题。我正在尝试发送应用内电子邮件。我也在使用Cocos2d。它工作,只要我得到邮件窗口,我可以发送邮件,但它是非常慢。它似乎每隔一秒左右接受一次触摸。我检查了cpu的使用情况,它很低。我暂停了我的导演,所以别的什么都不应该发生。有任何想法吗?我把头发拉了出来。
我看了一些例子并做了以下事情:
让我的场景成为邮件代表:
@interface MyLayer : CCLayer <MFMailComposeViewControllerDelegate> {
...
}
并在场景中实现了以下功能:
-(void) showEmailWindow: (id) sender {
[[CCDirector sharedDirector] pause];
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject: @"My subject here"];
NSString *emailBody = @"<h1>Here is my email!</h1>";
[picker setMessageBody:emailBody isHTML:YES];
[myMail presentModalViewController:picker animated:NO];
[picker release];
}
我还实现了mailComposeController来处理回调。
答案 0 :(得分:0)
在cocos2d论坛(http://www.cocos2d-iphone.org/forum)上,CJ帮助了我。
重要的一点是我没有打电话给[dicector stopAnimation]
,但也有一些其他的好点。
我现在在presentModalViewController
之前执行此操作:
CCDirector *director = [CCDirector sharedDirector];
[director pause];
[director stopAnimation];
[director.openGLView setUserInteractionEnabled:NO];
然后当我收到回调时,在mailComposeController
中,我最后会这样做:
CCDirector *director = [CCDirector sharedDirector];
[director.openGLView setUserInteractionEnabled:YES];
[director startAnimation];
[director resume];
[myMail.view.superview removeFromSuperview];
希望这有助于其他人。