所以我目前正在开发一个在屏幕上绘制一些东西的应用程序,比如图表之类的东西。在测试它及其功能时,我遇到了这个问题。
我有一个按钮,按下时会进入设置场景。我像这样初始化场景
+(id) scenew
{
CCScene *scene = [CCScene node];
Settings *layer = [Settings node];
[scene addChild: layer];
return scene;
}
在那个场景中,我还有两个按钮,一个完成按钮和一个新增功能按钮。
done = [CCMenuItemImage itemFromNormalImage:@"done.png" selectedImage:@"done.png" target:self selector:@selector(done:)];
按下 what's new 按钮会立即生效,但完成按钮会有 2-3 秒的延迟。该应用程序出现了一些控制台消息,似乎按下它时它会重新计算整个图表,就像启动应用程序时一样。所有按钮都调用相同的 CCDirector 函数,即 replaceScene。
-(void) whatNew: (id)sender
{
[[CCDirector sharedDirector] replaceScene: [New scene]];
}
-(void) done: (id)sender
{
[[CCDirector sharedDirector] replaceScene: [Main scene]];
}
有没有办法让我稍微优化一下……我的意思是……一种使用 replaceScene 的有效方法,或者其他不强制重新计算图形的方法?因为每当按下该按钮时,它实际上会跳到我的图形类实现的顶部,它有 4500 多行 Oo